Jak mogę powtórzyć pętlę przez v-for
X (np. 10) razy?
// want to repeat this (e.g.) 10 times
<ul>
<li v-for="item in shoppingItems">
{{ item.name }} - {{ item.price }}
</li>
</ul>
Dokumentacja pokazuje:
<ul>
<li v-for="item in 10">{{ item }}</li>
</ul>
// or
<li v-for="n in 10">{{ n }} </li>
// this doesn't work
<li v-for="item in 10">{{ item.price }}</li>
ale skąd vue zna źródło obiektów? Jeśli wyrenderuję to tak, jak mówi dokument, otrzymam liczbę elementów i elementów, ale bez treści.
javascript
vue.js
vuejs2
v-for
MikeCaine
źródło
źródło
v-for
; kiedy jest wywoływana względem liczby całkowitej i kiedy jest wywoływana względem tablicy. Mieszanie tych trybów i próba użycia liczby całkowitej do kontrolowania dostępu do zawartości tablicy może spowodować problemy. Jeśli potrzebujesz podzbioru tablicy, możesz go przefiltrować.Odpowiedzi:
Możesz użyć indeksu w zakresie, a następnie uzyskać dostęp do tablicy poprzez jej indeks:
<ul> <li v-for="index in 10" :key="index"> {{ shoppingItems[index].name }} - {{ shoppingItems[index].price }} </li> </ul>
Więcej informacji można znaleźć w oficjalnej dokumentacji .
źródło
<span v-for="i in 5">{{i}} </span>
=>1 2 3 4 5
. Użyj,<span v-for="(e, i) in 5">{{i}} </span>
aby uzyskać indeksowanie 0.Rozwiązałem to z pomocą Dova Benjamina w ten sposób:
<ul> <li v-for="(n,index) in 2">{{ object.price }}</li> </ul>
I jeszcze jedna metoda, zarówno dla V1.x, jak i 2.x vue.js
Vue 1: <p v-for="item in items | limitBy 10">{{ item }}</p> Vue2: // Via slice method in computed prop <p v-for="item in filteredItems">{{ item }}</p> computed: { filteredItems: function () { return this.items.slice(0, 10) } }
źródło
Musiałem dodać,
parseInt()
żeby powiedzieć v - ponieważ patrzył na liczbę.<li v-for="n in parseInt(count)" :key="n">{{n}}</li>
źródło
Możesz użyć natywnej metody wycinka JS:
<div v-for="item in shoppingItems.slice(0,10)">
Na podstawie wskazówki w przewodniku migracji: https://vuejs.org/v2/guide/migration.html#Replacing-the-limitBy-Filter
źródło
To samo dotyczy v-for in range :
<li v-for="n in 20 " :key="n">{{n}}</li>
źródło
W wersji 2.2.0+, gdy używasz v-for z komponentem, klucz jest teraz wymagany .
<div v-for="item in items" :key="item.id">
Źródło
źródło