1. Statische Implementierungsmethode: Effektbild: <!DOCTYPE html> <html lang="de"> <Kopf> <meta charset="UTF-8"> <meta http-equiv="X-UA-kompatibel" content="IE=edge"> <meta name="viewport" content="width=Gerätebreite, Anfangsmaßstab=1.0"> <title>Interaktion mit der Registerkarte „Ansicht“</title> <link rel="stylesheet" href="../css/demo.css" rel="externes nofollow" rel="externes nofollow" rel="externes nofollow" rel="externes nofollow" > </Kopf> <Text> <div Klasse="demo_warp" id="mein"> <ul Klasse="tab_tit"> <li :class="n==1?'active':''" @click="n=1">Titel 1</li> <li :class="n==2?'active':''" @click="n=2">Titel 2</li> <li :class="n==3?'active':''" @click="n=3">Titel 3</li> <li :class="n==4?'active':''" @click="n=4">Titel 4</li> </ul> <!-- neirong --> <div Klasse="tab_con"> <div v-show="n==1">Inhalt 1</div> <div v-show="n==2">Inhalt 2</div> <div v-show="n==3">Inhalt 3</div> <div v-show="n==4">Inhalt 4</div> </div> </div> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script> Vue.config.productionTip=false </script> <script src="../js/tab.js" type="text/javascript"></script> </body> </html> CSS *{ Rand: 0; Polsterung: 0; Boxgröße: Rahmenbox; } Textkörper,html{ Höhe: 100%; } .demo_warp .tab_tit { Anzeige: Flex; biegen: 1; Rand: .2rem; } .demo_warp .aktiv { Farbe: rot; Hintergrundfarbe: Kadettenblau; } .demo_warp ul li { Listenstil: keiner; Breite: 23%; Textausrichtung: zentriert; Hintergrundfarbe: #ccc; Marge: 0,1 %; } .demo_warp .tab_con { Breite: 100 %; Höhe: 3rem; Rand: 1px durchgezogener RGB (85, 85, 177); Textausrichtung: zentriert; } js fenster.onload = funktion(){ neuer Vue({ el:'#mein', data:{//Responsive Daten ändern sich und die Seite ändert sich ebenfalls n:1 } }) } 2. Die zweite dynamische Simulationsmethode Der Effekt ist in der Abbildung oben dargestellt: (ausgelassen) <!DOCTYPE html> <html lang="de"> <Kopf> <meta charset="UTF-8"> <meta http-equiv="X-UA-kompatibel" content="IE=edge"> <meta name="viewport" content="width=Gerätebreite, Anfangsmaßstab=1.0"> <title>Interaktion mit der Registerkarte „Ansicht“</title> <link rel="stylesheet" href="../css/demo.css" rel="externes nofollow" rel="externes nofollow" rel="externes nofollow" rel="externes nofollow" > </Kopf> <Text> <div Klasse="demo_warp" id="mein"> <ul Klasse="tab_tit"> <li v-for="(v,i) im Titel" :class="n==i?'active':''" @click="n=i">{{v}}</li> </ul> <!-- neirong --> <div Klasse="tab_con"> <div v-for="(v,i) in con" v-show="n==i">{{v}}</div> </div> </div> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script> Vue.config.productionTip=false </script> <script src="../js/tab.js" type="text/javascript"></script> </body> </html> CSS *{ Rand: 0; Polsterung: 0; Boxgröße: Rahmenbox; } Textkörper,html{ Höhe: 100%; } .demo_warp .tab_tit { Anzeige: Flex; biegen: 1; Rand: .2rem; } .demo_warp .aktiv { Farbe: rot; Hintergrundfarbe: Kadettenblau; } .demo_warp ul li { Listenstil: keiner; Breite: 23%; Textausrichtung: zentriert; Hintergrundfarbe: #ccc; Marge: 0,1 %; } .demo_warp .tab_con { Breite: 100 %; Höhe: 3rem; Rand: 1px durchgezogener RGB (85, 85, 177); Textausrichtung: zentriert; } js fenster.onload = funktion(){ neuer Vue({ el:'#mein', data:{//Responsive Daten ändern sich und die Seite ändert sich auch n:0, Titel:["Titel 1","Titel 2","Titel 3","Titel 4"], con:["Inhalt 1","Inhalt 2","Inhalt 3","Inhalt 4"] } }) } 3. Die dritte dynamische Datenmethode Wirkungsdiagramm: (So implementieren Sie die Bildlaufleiste) Code: <!DOCTYPE html> <html lang="de"> <Kopf> <meta charset="UTF-8"> <meta http-equiv="X-UA-kompatibel" content="IE=edge"> <meta name="viewport" content="width=Gerätebreite, Anfangsmaßstab=1.0"> <title>Interaktion mit der Registerkarte „Ansicht“</title> <link rel="stylesheet" href="../css/demo.css" rel="externes nofollow" rel="externes nofollow" rel="externes nofollow" rel="externes nofollow" > </Kopf> <Text> <div Klasse="demo_warp" id="mein"> <ul Klasse="tab_tit"> <li v-for="(v,i) in Listen" :class="n==i?'active':''" @click="n=i">{{v.title}}</li> </ul> <!-- nah --> <div Klasse="tab_con"> <div v-for="(v,i) in Listen" v-show="n==i">{{v.con}}</div> </div> </div> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script> Vue.config.productionTip=false </script> <script src="../js/tab.js" type="text/javascript"></script> </body> </html> CSS *{ Rand: 0; Polsterung: 0; Boxgröße: Rahmenbox; } Textkörper,html{ Höhe: 100%; } .demo_warp .tab_tit{ Anzeige: Flex; Inhalt ausrichten: Abstand dazwischen; Leerzeichen: Nowrap; Überlauf-y: versteckt; Überlauf-x: scrollen; Marge: 1 % 1 % 1 % 0; } ::-webkit-scrollbar{ Anzeige: keine; } .demo_warp .aktiv { Farbe: rot; Hintergrundfarbe: Kadettenblau; } .demo_warp ul li { Listenstil: keiner; Polsterung: 1,2 % 3,2 %; Textausrichtung: zentriert; Hintergrundfarbe: #ccc; Rand links: 1 %; } .demo_warp .tab_con { Breite: 100 %; Höhe: 3rem; Rand: 1px durchgezogener RGB (85, 85, 177); Textausrichtung: zentriert; } js fenster.onload = funktion(){ neuer Vue({ el:'#mein', data:{//Responsive Daten ändern sich und die Seite ändert sich auch n:0, Listen: [//Es können viele Daten//Array-Objekte in der Form {title:'Titel 1',con:'Inhalt 1'} vorhanden sein. {title:'Titel 2',con:'Inhalt 2'}, {title:'Titel Drei',con:'Inhalt Drei'}, {title:'Titel 4',con:'Inhalt 4'}, {title:'Titel Fünf',con:'Inhalt Fünf'}, {title:'Titel Sechs',con:'Inhalt Sechs'}, {title:'Titel Sieben',con:'Inhalt Sieben'}, {title:'Titel 8',con:'Inhalt 8'}, ] } }) } 4. Dynamische Implementierungsmethode (Simulation der Hintergrunddatenimplementierung) Effektbild: Code: <html lang="de"> <Kopf> <meta charset="UTF-8"> <meta http-equiv="X-UA-kompatibel" content="IE=edge"> <meta name="viewport" content="width=Gerätebreite, Anfangsmaßstab=1.0"> <title>Interaktion mit der Registerkarte „Ansicht“</title> <link rel="stylesheet" type="text/css" href="../css/demo.css" rel="externes nofollow" rel="externes nofollow" rel="externes nofollow" rel="externes nofollow" > </Kopf> <Text> <div Klasse="demo_warp" id="mein"> <ul Klasse="tab_tit"> <li v-for="(v,i) in Listen" :class="m==i?'active':''" @click="m=i" :key="i.title">{{v.title}}</li> </ul> <!-- neirong --> <div Klasse="tab_con"> <div v-for="(v,i) in Listen" v-show="m==i" :key="i.con">{{v.con}}</div> </div> <!-- -----------Dynamische Daten----------- --> <ul Klasse="tab_tit"> <li v-for="(Artikel, Index) in Artikelliste" :class="n==index?'active':''" @click="n=index" :key="index">{{Artikel.name}}</li> </ul> <!-- neirong --> <div Klasse="tab_con"> <div v-for="(Artikel, Index) in Artikelliste" v-show="n==index" :key="index">{{Artikel.Status}}</div> </div> </div> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script> Vue.config.productionTip=false </script> <script src="../node_modules/axios/dist/axios.js"></script> <script src="../js/tab.js" type="text/javascript"></script> </body> </html> CSS *{ Rand: 0; Polsterung: 0; Boxgröße: Rahmenbox; } Textkörper,html{ Höhe: 100%; } .demo_warp .tab_tit{ Anzeige: Flex; Inhalt ausrichten: Abstand dazwischen; Leerzeichen: Nowrap; Überlauf-y: versteckt; Überlauf-x: scrollen; Marge: 1 % 1 % 1 % 0; } ::-webkit-scrollbar{ Anzeige: keine; } .demo_warp .aktiv { Farbe: rot; Hintergrundfarbe: Kadettenblau; } .demo_warp ul li { Listenstil: keiner; Polsterung: 1,2 % 3,2 %; Textausrichtung: zentriert; Hintergrundfarbe: #ccc; Rand links: 1 %; } .demo_warp .tab_con { Breite: 100 %; Höhe: 3rem; Rand: 1px durchgezogener RGB (85, 85, 177); Textausrichtung: zentriert; } tab.js fenster.onload = funktion(){ neuer Vue({ el:'#mein', data(){//Responsive Daten ändern sich und die Seite ändert sich auch return{ n:0, m:0, Listen:[ {title:'Titel 1',con:'Inhalt 1'}, {title:'Titel 2',con:'Inhalt 2'}, {title:'Titel Drei',con:'Inhalt Drei'}, {title:'Titel 4',con:'Inhalt 4'}, {title:'Titel Fünf',con:'Inhalt Fünf'}, {title:'Titel Sechs',con:'Inhalt Sechs'}, {title:'Titel Sieben',con:'Inhalt Sieben'}, {title:'Titel 8',con:'Inhalt 8'}, ], Artikelliste:[] } }, Methoden:{ getList:function(){//this:--[diese Funktion und dieser Timer zeigt auf das Fenster (aber wir möchten, dass dies auf die Vue-Instanz zeigt)] var that=this; //Lokale Definition ändert diesen Zeiger //Löschen Sie bei jeder Ausführung dieser Methode vorher das Array, um sicherzustellen, dass das Array bei der weiteren Ausführung des Codes leer ist // this.itemList = []; axios({ Methode: 'get', URL: „http://localhost:4000/Liste“ }).dann(Funktion(res){ konsole.log(res); that.itemList = res.data.result; }).catch(Funktion(Fehler){ konsole.log(Fehler); }) } }, montiert:Funktion(){ dies.getList(); }, }) } nodeServer.js /* Connect ist ein Node-Middleware-Framework. Wenn Sie einen HTTP-Verarbeitungsprozess mit einer Abwasserbehandlung vergleichen, ist Middleware wie eine Filterschicht. Jede Middleware schreibt die Anforderungs- bzw. Antwortdaten und den Status im HTTP-Verarbeitungsprozess neu, um bestimmte Funktionen zu erreichen. Middleware ist so etwas wie ein Filter, eine Methode zur Verarbeitung von Anforderungen und Antworten zwischen dem Client und der Anwendung. */ //Erstellen Sie einen Vermittler, um den Serviceknoten node.js zu starten var connect = require('connect'); //Verbindung erstellen var bodyParser = require('body-parser'); //Body-Parsing wird zum Verarbeiten von JSON-, RAW-, Text- und URL-codierten Daten verwendet. var Listen = {}; var app = verbinden() .use(bodyParser.json()) //JSON-Analyse .use(bodyParser.urlencoded({extended:true})) //Die use()-Methode verfügt auch über einen optionalen Pfadstring, der mit dem Anfang der eingehenden Anforderungs-URL übereinstimmt. //Die use()-Methode verwaltet eine Middleware-Warteschlange.use(function(req,res,next){ //Domänenübergreifende Verarbeitung//Website, die Sie verbinden möchten res.setHeader('Access-Control-Allow-origin','*');//Erlaube jeden beliebigen Ursprung//Anforderungsmethoden, die du zulassen möchtest res.setHeader('Access-Control-Allow-Methods','CET','POST','OPTIONS','PUT','PATCH','DELETE'); //Erlaube alle Methoden //Anforderungsheader, die du zulassen möchtest res.setHeader('Access-Control-Allow-Headers','*');//Jeden Typ zulassen res.writeHead(200,{"Content-Type":"text/plain/xml;charset=utf-8"});//utf-8-Transkodierung next();//nächste Methode ist ein rekursiver Aufruf }) .use('/Liste',Funktion(erfordern,res,weiter){ var Daten = { "Code": "200", "msg":"Erfolg", "Ergebnis":[ {name:"Mobiltelefon",state:"Kauf 1"}, {name:"bag",state:"Kauf 2"}, {name:"clothes",state:"Kauf 3"}, {name:"Computer",state:"Kauf 4"}, {name:"Elektronische Produkte",state:"Kauf 5"} ] } res.end(JSON.stringify(Daten)); nächste(); }) .verwenden('/list_get',Funktion(req,res,next){ var Daten = { "Code":'200', "msg":"Erfolg", "Ergebnis":Listen } res.end(JSON.stringify(Daten)); nächste(); }) .verwenden('/list_add',Funktion(req,res,next){ wenn(req.method=='POST'){ Konsole.log(Anforderung.Body.Name); Listen.push({name:req.body.name,status:req.body.state,id:index++}); var data={"code":200,"msg":"erfolgreich"}; res.end(JSON.stringify(Daten)); }anders{ }); } nächste(); }) .verwenden('/list_del',Funktion(req,res,next){ Konsole.log(erforderlich.Body.ID); //Listen=Listen.Filter(Liste=>Liste.ID!=req.body.ID); für(var i=0;i<lists.length;i++){ wenn(req.body.id===lists[i].id){ Listen.splice(i,1); } } konsole.log(Listen); var data={"code":200,"msg":"erfolgreich"}; res.end(JSON.stringify(Daten)); nächste(); }) .listen(4000); console.log('Server auf Port 4000 gestartet.'); Plug-in: (Plug-in, das heruntergeladen werden muss) 1. Starten Sie zuerst den Dienstknoten nodeServer.js (kann nicht geschlossen werden, da sonst die Daten nicht abgerufen werden können) Im Projekt aufgetretene Fehler:Nachdem die v-for-Schleife in vue durchlaufen wurde, wird der aktuelle Inhalt aufgrund des dadurch angezeigten Problems nicht gerendert. Lösung 1: Lösung 2: Lösung 3: Zusammenfassung: URL: Die Schnittstelle muss ihre eigene Hintergrundschnittstelle schreiben. Dies ist nur eine simulierte Schnittstelle. Die Datei nodeServer.js kann Datentypen in verschiedenen Formaten definieren und auch mehrere erforderliche Typen lokal verschachteln. Sie können es zuerst ausprobieren und dann die Hintergrunddaten anpassen. Empfohlen zum Erlernen von VUE: Dokumentation::https://cn.vuejs.org/v2/guide/list.html Damit ist dieser Artikel über die vier Methoden zum Wechseln von VUE-Registerkarten abgeschlossen. Weitere relevante Inhalte zum Wechseln von VUE-Registerkarten finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
>>: Anwendungsszenarien und Entwurfsmethoden für MySQL-Tabellen- und Datenbank-Sharding
Inhaltsverzeichnis Vorwort Umfang 1. Was ist Umfa...
1. Zuerst müssen Sie den Zielselektor von CSS3 ve...
In diesem Artikelbeispiel wird der spezifische Co...
CSS 3-Animationsbeispiel - Dynamischer Effekt des...
Unter Zellenabstand versteht man den Abstand zwis...
Einführung Beginnen wir wie immer mit einer Szene...
Inhaltsverzeichnis Vorwort Requisiten Kontext Zus...
„Der große Fluss fließt nach Osten, die Wellen sp...
NULL- und NOT NULL-Modifikatoren, DEFAULT-Modifik...
Hintergrund: Während des Entwicklungsprozesses mü...
Wenn Sie Ihr MySQL-Anmeldekennwort vergessen, ist...
Inhaltsverzeichnis Bereitstellung mehrerer Anwend...
1. Kaufen Sie einen Server Im Beispiel handelt es...
Die meisten Leute haben schon einmal vom Konzept ...
Einführung Unser Unternehmen ist an der Forschung...