我如何通过v-for X(例如10)次重复一个循环?
<!-- want to repeat this (e.g.) 10 times -->
<ul>
<li v-for="item in shoppingItems">
{{ item.name }} - {{ item.price }}
</li>
</ul>
文档显示:
<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>
但是vue从哪里知道这些对象的来源呢?
如果我像文档说的那样渲染它,我得到了项目和项目的数量,但没有内容。
第一个版本
// I expect your data like this
shoppingItems: [
{
name: "Clothes A",
price: 1000
},
{
name: "Clothes B",
price: 5000
},
{
name: "Clothes C",
price: 20000
}
]
<ul>
// The item in here means each object in shoppingItems
<li v-for="item in shoppingItems">
{{ item.name }} - {{ item.price }}
</li>
</ul>
上面的示例代码用于循环shoppingItems中的每个项目
第二个版本
<ul>
// The index will start form 0 until 10 - 1
<li v-for="index in 10">
{{ shoppingitems[index].name }} - {{ shoppingitems[index].price }}
</li>
</ul>
我在Dov Benjamin的帮助下解决了这个问题
<ul>
<li v-for="(n,index) in 2">{{ n }}, {{ index }}</li>
</ul>
注意,在这种情况下,n是1索引,index是0索引。
另一种方法,对于两个V1。X和2。vue.js的X
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)
}
}