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
In diesem Artikel erkläre ich ausführlich, wie ma...
Vorwort 1. Dieser Artikel verwendet MySQL 8.0 Ver...
1. Einleitung Mit Imagemaps können Sie Bereiche e...
Vorab geschrieben: In den folgenden Schritten müs...
Im Bereich Design gibt es jedes Jahr unterschiedl...
Ich habe js verwendet, um ein Paket zur Konvertie...
Inhaltsverzeichnis Überblick Methode 1: Parameter...
Hintergrund: Als DBA werden die meisten DDL-Änder...
Da Benutzer immer datenschutzbewusster werden und...
In diesem Artikel wird der spezifische Code des W...
Experimentelle Umgebung: 1. Drei CentOS 7-Server ...
Das Tbody-Element sollte in Verbindung mit den Ele...
Die virtuelle Maschine wird auf dem Hostcomputer ...
SQL-Methode zum Berechnen der Zeitstempeldifferen...
Führen Sie zunächst eine einfache Docker-Installa...