@Ankozar

Как с помощью vue изменить background-color каждому второму элементу списка?

Отрисовываю список с помощью v-for. Фон каждого второго элемента должен быть другого цвета. Не понимаю, как это сделать. Ведь если сразу забайндить стиль, то у каждого элемента будет такой фон.

Думал указать ключ со значением 0 в data, и у каждого второго элемента указывать фон, если этот параметр равен 1, но как менять параметр?
  • Вопрос задан
  • 821 просмотр
Решения вопроса 2
@NewUser4242
Выводите элементы через v-for="(item,i) in items" (i это индексб мы будем проверять остаток от деления на 2, т.е является ли число парным)
Далее каждому проверку :class="i % 2 === 0 ? 'active' : '' "
И в стилях элементу с классом active(замените на нужный) пропишете фон)
Ответ написан
Комментировать
0xD34F
@0xD34F Куратор тега Vue.js
Лучше никак. Такие вещи принято делать через css:

.item:nth-child(2n) {
  background-color: red;
}

<div v-for="n in items" class="item">

Но, конечно, можно назначать или не назначать стили в зависимости от индекса:

<div v-for="(n, i) in items" :style="i & 1 && { backgroundColor: 'red' }">

https://jsfiddle.net/qcu93h2w/
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
imko
@imko
Senior Scratch Developer
Не усложняй, сделай через цсс, :nth-child(even)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы