我有这个v-for
循环我的vue.js应用程序:
<div v-for="(word, index) in dictionary">
// break if index > 20
<p>{{word}}</p>
</div>
我想在渲染20个单词后突破循环。我怎样才能做到这一点? 我查看docs,但没有看到任何相关内容。
答案 0 :(得分:7)
你可以在循环开始之前操作数组
<div v-for="(word, index) in dictionary.slice(0,20)">
<p>{{word}}</p>
</div>
答案 1 :(得分:3)
您必须为截断的字典创建计算值(例如,最好准备数据进行渲染):
computed: {
shortDictionary () {
return dictionary.slice(0, 20)
}
}
...
<div v-for="(word, index) in shortDictionary">
<p>{{word}}</p>
</div>
答案 2 :(得分:2)
对于这种情况,此解决方案最适合我。
<div v-for="(word, index) in dictionary" v-if="index <= 20">
<p>{{word}}</p>
</div>
答案 3 :(得分:0)
要在v-for级别上执行此操作,请创建一个具有限制的数据对象,并将其与索引进行比较,以通过v-if控制v-for。
<div v-for="(word, index) in dictionary" v-if="index<=limit">
// break if index > 20
<p>{{word}}</p>
</div>
<script>
export default{
data(){
return{
limit: 20 }
}
}
</script>
答案 4 :(得分:0)
具有在范围内使用v-for的能力,这里的解决方案不涉及通过剪接或使用计算的来创建新数组:
<div v-for="i in Math.min(dictionary.length, 20)">
<p>{{dictionary[i-1]}}</p>
</div>