У меня есть это v-for
loop мое приложение vue.js:
<div v-for="(word, index) in dictionary">
// break if index > 20
<p>{{word}}</p>
</div>
Я хочу вырваться из цикла после рендеринга 20 слов. Как я могу это достичь? Я посмотрел документы, но ничего не видел.
вы можете манипулировать массивом до начала цикла
<div v-for="(word, index) in dictionary.slice(0,20)">
<p>{{word}}</p>
</div>
Вы должны создать вычисленное значение для вашего укороченного словаря (например, лучше подготовить данные для рендеринга):
computed: {
shortDictionary () {
return dictionary.slice(0, 20)
}
}
...
<div v-for="(word, index) in shortDictionary">
<p>{{word}}</p>
</div>
v-for
?
Для этого сценария это решение работает лучше всего для меня.
<div v-for="(word, index) in dictionary" v-if="index <= 20">
<p>{{word}}</p>
</div>
Чтобы сделать это на уровне v-for, создайте объект данных с лимитом и сравните его с индексом для управления v-for с помощью v-if.
<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>