Mik*_*ine 67 javascript vue.js vuejs2 v-for
如何通过v-forX(例如10次)重复循环?
// want to repeat this (e.g.) 10 times
<ul>
<li v-for="item in shoppingItems">
{{ item.name }} - {{ item.price }}
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
文档显示:
<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>
Run Code Online (Sandbox Code Playgroud)
但vue从哪里知道对象的来源?如果我像文档说的那样呈现它,我会获得项目和项目的数量,但没有内容.
Dov*_*ski 119
您可以使用范围中的索引,然后通过其索引访问该数组:
<ul>
<li v-for="index in 10" :key="index">
{{ shoppingItems[index].name }} - {{ shoppingItems[index].price }}
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
您还可以查看官方文档以获取更多信息.
Ali*_*aza 26
解决方案1:
<p v-for="i in 5" :key="i">{{ i }}</p>
Run Code Online (Sandbox Code Playgroud)
请记住,结果将为 1-5。
解决方案 2: 如果您想显示数组中有限数量的元素。您应该使用JavaScript 的slice()方法。
<p v-for="i in usersList.slice(0,5)" :key="i">{{ i }}</p>
Run Code Online (Sandbox Code Playgroud)
Mik*_*ine 10
我已经在Dov Benjamin的帮助下解决了这个问题:
<ul>
<li v-for="(n,index) in 2">{{ object.price }}</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
和我搜索和发现的另一种方法
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)
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢编码!
再见
您可以使用本机JS slice方法:
<div v-for="item in shoppingItems.slice(0,10)">
slice()方法将数组中选定的元素作为新的数组对象返回。
根据迁移指南中的提示:https : //vuejs.org/v2/guide/migration.html#Replacing-the-limitBy-Filter
我不得不parseInt()告诉v-因为它正在查看一个数字。
<li v-for="n in parseInt(count)" :key="n">{{n}}</li>
v-for in range 也是如此:
<li v-for="n in 20 " :key="n">{{n}}</li>