Директива v-for
в Vue может использоваться не только для итерации по массивам и объектам, но и для повторения элементов заданное количество раз, используя синтаксис диапазона.
<template>
<div>
<!-- Повторить 5 раз -->
<span v-for="n in 5" :key="n">{{ n }}</span>
</div>
</template>
Результат:
1 2 3 4 5
:key
<ul>
<li v-for="i in 10" :key="i">Элемент №{{ i }}</li>
</ul>
<div class="rating">
<span v-for="star in 5" :key="star"
:class="{ 'active': star <= currentRating }">
★
</span>
</div>
<table>
<tr v-for="i in 9" :key="i">
<td v-for="j in 9" :key="j">{{ i * j }}</td>
</tr>
</table>
<template>
<div>
<my-component v-for="n in 3" :key="n" :index="n" />
</div>
</template>
computed: {
reverseRange() {
return Array.from({length: 5}, (_, i) => 5 - i);
}
}
<div v-for="n in reverseRange" :key="n">{{ n }}</div>
Для более сложных сценариев можно использовать:
data() {
return {
range: Array.from({length: 10}, (_, i) => i + 1)
}
}
<div v-for="n in range" :key="n">{{ n }}</div>
Директива v-for
с диапазоном:
✔ Позволяет повторять элементы N раз
✔ Синтаксис: v-for="n in X"
, где X - целое число
✔ Начинает отсчет с 1 (а не с 0)
✔ Требует указания уникального :key
✔ Полезен для генерации статического контента
✔ Может использоваться с компонентами
Идеальные случаи применения:
Для сложных сценариев лучше использовать вычисляемые свойства или методы для генерации диапазона.