Vue Js - X kez v üzerinden döngü (bir aralıkta)


127

Bir döngüyü v-forX (örneğin 10) kez nasıl tekrar edebilirim ?

// want to repeat this (e.g.) 10 times

<ul>
  <li v-for="item in shoppingItems">
    {{ item.name }} - {{ item.price }}
  </li>
</ul>

Belgeler şunları gösterir:

<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>

ama vue nesnelerin kaynağını nereden biliyor? Dokümanın dediği gibi işlersem, öğelerin ve öğelerin sayısını içerik olmadan alırım.


Maalesef bu işe yaramıyor, ancak teşekkürler
MikeCaine

Neden alışveriş öğelerini yinelemiyorsunuz?
Bert

1
Hy Bert - Ben sadece v-for (en basit yol) a (x) sayıda tekrar sayısını nasıl vereceğimi bilmek istiyorum ve belgedeki örnek çalışmıyor ...... .... saf js + ajax çok basit dönüşü <9 veya veya veya, ancak bu yöntemde işe yaramıyor ...
MikeCaine

İki farklı mod vardır v-for; bir tamsayıya karşı çağrıldığında ve bir diziye karşı çağrıldığında. Bu modları karıştırmak ve bir dizinin içeriğine erişimi kontrol etmek için bir tamsayı kullanmaya çalışmak büyük olasılıkla sorunlara neden olacaktır. Dizinin bir alt kümesine ihtiyacınız varsa, onu filtreleyebilirsiniz.
Jason Aller

Yanıtlar:


196

Bir aralıktaki bir dizini kullanabilir ve ardından diziye dizini aracılığıyla erişebilirsiniz:

<ul>
  <li v-for="index in 10" :key="index">
    {{ shoppingItems[index].name }} - {{ shoppingItems[index].price }}
  </li>
</ul>

Daha fazla bilgi için Resmi Belgeleri de inceleyebilirsiniz.


3
Çalışıyor: :) 2 "> {{shoppingItems.price}} </li> ==== MNY THXXXX Coder ***** içinde <li v-for =" (n, index) olarak değiştirdim. ! ====
MikeCaine

1
Bu 10 bir değişken nasıl yapılır?, Bileşenin verilerinden nasıl oluşturulur?
alvaro

10
Bunun neden 1 endeksli olduğu tamamen benim dışımda. <span v-for="i in 5">{{i}} </span>=> 1 2 3 4 5. <span v-for="(e, i) in 5">{{i}} </span>0-endeksleme elde etmek için kullanın .
ggorlen

Tüm dizide yinelemek için shoppingItems [index -1] .name yazmanız gerektiğini fark ettim
peschanko

35

Bunu Dov Benjamin'in yardımıyla çözdüm:

<ul>
  <li v-for="(n,index) in 2">{{ object.price }}</li>
</ul>

Ve vue.js'nin hem V1.x hem de 2.x'i için başka bir yöntem

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)
     }
  }


16

parseInt()Bir sayıya baktığını söylemek için eklemek zorunda kaldım .

<li v-for="n in parseInt(count)" :key="n">{{n}}</li>


5

Aynısı aralık içi v-for için de geçerlidir :

<li v-for="n in 20 " :key="n">{{n}}</li>


1
Lütfen önce tdhulster cevabını kontrol edin .
son

1

2.2.0+ sürümünde, v-for'u bir bileşenle kullanırken, artık bir anahtar gereklidir .

<div v-for="item in items" :key="item.id">

Kaynak

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.