Dies ist insbesondere in folgenden Situationen nützlich:
Die grundlegendste Verwendung der v-for-Schleife in Vue ist diese: <ul> <li v-for='Produkt in Produkten'> {{ produkt.name }} </li> </ul> In diesem Artikel sehen wir uns jedoch einige tolle Möglichkeiten an, wie Sie Ihren Lasst uns anfangen. 1. Verwenden Sie in v-for-Schleifen immer den Schlüssel Zunächst besprechen wir eine gängige Best Practice, die den meisten Wenn wir Wenn wir über eine eindeutige Schlüsselreferenz zu jedem Element verfügen, können wir das DOM vorhersehbarer manipulieren. <ul> <li v-for='Produkt in Produkten' :Schlüssel='Produkt._ID' > {{ produkt.name }} </li> </ul> 2. Verwenden Sie die v-for-Schleife in einem bestimmten Umfang Während Nehmen wir beispielsweise an, wir erstellen ein Paginierungssystem für einen Online-Shop und möchten nur 10 Produkte pro Seite anzeigen. Mithilfe einer Variablen zum Verfolgen der aktuellen Seitenzahl können Sie die Seitennummerierung auf diese Weise handhaben. <ul> <li v-für='Index in 10' :Schlüssel='Index'> {{ Produkte[Seite * 10 + Index] }} </li> </ul> 3. Vermeiden Sie die Verwendung von v-if in Schleifen Ein sehr häufiger Fehler ist die Verwendung von v-if zum Filtern von Daten in Dies mag zwar intuitiv erscheinen, kann jedoch zu großen Leistungsproblemen führen – Dies bedeutet, dass die Komponente jedes Element durchläuft, bevor sie die Wenn Sie v-if mit v-for verwenden, wird jedes Element im Array durchlaufen, unabhängig von der Bedingung. // Schlechte Praxis! <ul> <li v-for='Produkt in Produkten' :Schlüssel='Produkt._ID' v-if='Produkt.imVerkauf' > {{ produkt.name }} </li> </ul> Also, wo liegt das Problem? Angenommen, Bei jedem erneuten Rendern muss Vue diese Tausenden von Artikeln durchlaufen, obwohl sich an den drei verkauften Produkten überhaupt nichts geändert hat. Sie müssen versuchen, die gemeinsame Verwendung von v-if und Als nächstes werden zwei alternative Ansätze beschrieben. 4. Verwenden Sie berechnete Eigenschaften oder MethodenUm die oben genannten Probleme zu vermeiden, sollten wir die Daten filtern, bevor wir sie in der Vorlage iterieren. Hierzu gibt es zwei sehr ähnliche Möglichkeiten:
Die Wahl liegt bei Ihnen, aber lassen Sie uns kurz beide Methoden durchgehen. Zuerst müssen wir nur eine <Vorlage> <ul> <li v-for="Produkte in Produkte im Angebot" :key="product._id"> {{ produkt.name }} </li> </ul> </Vorlage> <Skript> Standard exportieren { Daten () { zurückkehren { Produkte: [] } }, berechnet: { Produkte im Angebot: Funktion () { gib diesen.Produkte.Filter zurück(Produkt => Produkt.imVerkauf) } } } </Skript> Die Vorteile sind:
Der Code für die Verwendung der Filtermethode ist fast derselbe, aber durch die Verwendung der Filtermethode ändert sich die Art und Weise, wie Sie auf den Wert innerhalb der Vorlage zugreifen. Wenn wir jedoch Variablen an den Filterprozess übergeben möchten, sollten wir die Methode route wählen. <Vorlage> <ul> <li v-for="Produkte in Produkte im Angebot(50))" :key="Produkt._id"> {{ produkt.name }} </li> </ul> </Vorlage> <Skript> Standard exportieren { Daten () { zurückkehren { Produkte: [] } }, Methoden: { Produkte im Angebot (max. Preis) { gib diesen.Produktfilter zurück(Produkt => Produkt.imVerkauf && Produkt.Preis < maxPreis) } } } </Skript> 5. Oder wickeln Sie eine Schicht Elemente um die Schleife Möglicherweise möchten Sie Was wäre beispielsweise, wenn wir eine Produktliste nur dann rendern möchten, wenn der Benutzer angemeldet ist? Fehlercode: <ul> <li v-for='Produkt in Produkten' :Schlüssel='Produkt._ID' v-if='isLoggedIn' <!-- HIER --> > {{ produkt.name }} </li> </ul> Was ist daran falsch? Das Gleiche wie vorher. Die Dies führt zu einer Schleife über Tausende von Elementen, auch wenn am Ende nichts gerendert wird. Eine einfache Lösung für dieses Beispiel besteht darin, die v-if-Anweisung zu verschieben. Besserer Code! <ul v-if='isLoggedIn'> <!-- Viel besser --> <li v-for='Produkt in Produkten' :Schlüssel='Produkt._ID' > {{ produkt.name }} </li> </ul> Das ist viel besser, denn wenn 6. Zugriff auf Indizes in SchleifenAnstatt über das Array zu iterieren und auf jedes Element zuzugreifen, können wir auch den Index jedes Elements verfolgen. Dazu müssen wir nach dem Element einen Indexwert hinzufügen. Dies ist sehr einfach, kann aber für die Seitennummerierung, die Anzeige von Listenindizes, die Anzeige von Ranglisten usw. nützlich sein. <ul> <li v-for='(Produkte, Index) in Produkten' :key='Produkt._id' > Produkt #{{ index }}: {{ product.name }} </li> </ul> 7. Iterationsobjekte Bisher haben wir uns nur die Verwendung von Ähnlich wie beim Zugriff auf den Index eines Elements müssen wir der Schleife einen weiteren Wert hinzufügen. Wenn wir eine Schleife über ein Objekt mit einem einzelnen Argument ausführen, führen wir eine Schleife über alle Elemente aus. Wenn wir einen weiteren Parameter hinzufügen, erhalten wir das Element und den Schlüssel. Wenn wir ein drittes Argument hinzufügen, können wir auch auf den Index der v-for-Schleife zugreifen. Angenommen, wir möchten jedes Attribut in einem Produkt durchlaufen. Der Code lautet dann wie folgt: <ul> <li v-for='(Produkte, Index) in Produkten' :key='Produkt._id' > <span v-for='(Artikel, Schlüssel, Index) im Produkt' :Schlüssel='Schlüssel'> {{ Artikel }} </span> </li> </ul> abschließend: Damit ist dieser Artikel über 7 Möglichkeiten zum Schreiben von Vue v-for-Schleifen abgeschlossen. Weitere Informationen zu Vue v-for-Schleifen finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Einführung in geplante Aufgaben im Linux-System
>>: Verwenden von CSS3 zum Erstellen von Header-Animationseffekten
Beim Entwickeln einer Website müssen Sie häufig e...
1. Entpacken Sie das Zip-Paket in das Installatio...
Der Vorgang der Installation der MySQL-Datenbank ...
Die Standard-Firewall von CentOS7 ist nicht iptab...
In der MySQL-Dokumentation können MySQL-Variablen...
Vorwort Hinweis: Die Testdatenbankversion ist MyS...
Umgebung: MacOS_Cetalina_10.15.1, Mysql8.0.18, Do...
1. Einzelne Tabellenabfrage -> Update UPDATE T...
Wenn Neulinge Div+CSS entwickeln, müssen sie die ...
Hash-Modus (Standard) Funktionsprinzip: Überwache...
Der Einsatz von Containern kommt immer häufiger v...
Als ich die CPP-Datei zum ersten Mal mit G++ komp...
Als ich kürzlich kazam in Ubuntu 20.04 zur Aufzei...
Popup-Nachrichten sind bei inländischen Internetd...
Das MySQL auf dem Server ist in der Version 8.0.1...