\n```\n\nОбязательный элемент хорошего ответа — `:key` со стабильным id. Без него Vue хуже сопоставляет узлы при сортировке/вставках; с индексом как `key` легко «поехать» фокусу и state дочерних компонентов.\n\nВ области видимости `v-for` доступны и props/state родителя. Несколько узлов на одну итерацию — через ``. В Vue 3 ключ ставят на ``. Для производных списков предпочитайте `computed` с `filter`/`map`, а не сложную логику прямо в шаблоне.\n\nДополнительно: `v-for` на компоненте передаёт props явно (`:user=\"user\"`). Порядок обновления списка зависит от изменения массива и `key`. Для больших списков смотрите виртуализацию. В шаблоне избегайте тяжёлых выражений внутри `v-for` — выносите в `computed`."}}}
v-for — директива для рендера списков. Источник: массив, объект или целое число (диапазон). Базовый синтаксис: item in items; с индексом — (item, index) in items; для объекта — (value, key, index) in object.
Обязательный элемент хорошего ответа — :key со стабильным id. Без него Vue хуже сопоставляет узлы при сортировке/вставках; с индексом как key легко «поехать» фокусу и state дочерних компонентов.
В области видимости v-for доступны и props/state родителя. Несколько узлов на одну итерацию — через <template v-for="..." :key="...">. В Vue 3 ключ ставят на <template>. Для производных списков предпочитайте computed с filter/map, а не сложную логику прямо в шаблоне.
Дополнительно: v-for на компоненте передаёт props явно (:user="user"). Порядок обновления списка зависит от изменения массива и key. Для больших списков смотрите виртуализацию. В шаблоне избегайте тяжёлых выражений внутри v-for — выносите в computed.