Vue.js Schleifenanweisungen
In Vue werden Schleifenanweisungen hauptsächlich durch die v-for-Direktive implementiert, mit der Arrays oder Objekte durchlaufen werden, wodurch eine entsprechende Anzahl von Elementen generiert wird.
Verwende die v-for-Direktive an einem Element, um Elemente basierend auf dem Quelldaten-Array oder -Objekt in einer Schleife zu rendern.
Durchlaufen eines Arrays:
v-for="(item, index) in items"
Durchlaufen eines Objekts:
v-for="(value, key, index) in object"
Die Rolle von keyVerwenden von :
v-forBeim Rendern einer Liste musst du ein eindeutigeskeyAttribut angeben, damit Vue die Eindeutigkeit jedes Elements erkennen und effiziente DOM-Aktualisierungen durchführen kann.Verschachtelte Schleifen: Mehrere können verschachtelt werden
v-forum mehrdimensionale Arrays oder Objektstrukturen zu rendern.
v-for kann Daten an ein Array binden, um eine Liste zu rendern:
v-for-Beispiel
<ol>
<li v-for="site in sites">
{{ site.text }}
</li>
</ol>
</div>
<script>
const app = {
data() {
return {
sites: [
{ text: 'Google' },
{ text: 'Example' },
{ text: 'Taobao' }
]
}
}
}
Vue.createApp(app).mount('#app')
</script>
Selbst ausprobieren »
v-for unterstützt außerdem einen optionalen zweiten Parameter, dessen Wert der Index des aktuellen Elements ist:
v-for-Beispiel
index ist der Indexwert des Listenelements:
<ol>
<li v-for="(site, index) in sites">
{{ index }} -{{ site.text }}
</li>
</ol>
</div>
<script>
const app = {
data() {
return {
sites: [
{ text: 'Google' },
{ text: 'Example' },
{ text: 'Taobao' }
]
}
}
}
Vue.createApp(app).mount('#app')
</script>
Selbst ausprobieren »
Verwendung von v-for im <template>-Element:
v-for
Selbst ausprobieren »
v-for-Iteration über Objekte
v-for kann Daten anhand der Eigenschaften eines Objekts durchlaufen:
v-for
Selbst ausprobieren »
Sie können den zweiten Parameter auch als Schlüsselnamen angeben:
v-for
Selbst ausprobieren »
Der dritte Parameter ist der Index:
v-for
Selbst ausprobieren »
v-for Iterieren über Ganzzahlen
v-for kann auch über Ganzzahlen iterieren
Anzeigen von gefilterten/sortierten Ergebnissen
Wir können die Elemente eines Arrays verarbeiten, bevor wir sie anzeigen. Im Allgemeinen können wir eine berechnete Eigenschaft erstellen, um das gefilterte oder sortierte Array zurückzugeben.
v-for-Beispiel
Geben Sie die geraden Zahlen im Array aus:
Selbst ausprobieren »
Gemeinsame Verwendung von v-for/v-if
Das obige Beispiel verwendet v-for/v-if zusammen, um einen Standardwert für das select festzulegen:
v-for/v-if Beispiel
v-for durchläuft die Liste, v-if setzt den ausgewählten Wert:
Selbst ausprobieren »
Verwendung von v-for bei Komponenten
Wenn Sie noch nichts über Komponenten gelernt haben, können Sie diesen Abschnitt überspringen.
Bei benutzerdefinierten Komponenten können Sie v-for genauso wie bei jedem normalen Element verwenden:
<my-component v-for="item in items" :key="item.id"></my-component>
Es werden jedoch keine Daten automatisch an die Komponente übergeben, da die Komponente einen eigenen unabhängigen Gültigkeitsbereich hat. Um die iterierten Daten an die Komponente zu übergeben, müssen wir props verwenden:
<my-component v-for="(item, index) in items" :item="item" :index="index" :key="item.id" ></my-component>
Der Grund dafür, item nicht automatisch in die Komponente einzuspeisen, ist, dass dies die Komponente eng an die Funktionsweise von v-for koppeln würde. Die Datenquelle der Komponente explizit zu machen, ermöglicht es, die Komponente in anderen Situationen wiederzuverwenden.
Unten folgt ein vollständiges Beispiel für eine einfache Todo-Liste:
Beispiel
Selbst ausprobieren »