Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: static, key, dynamic, binding

Что произойдёт, если не использовать динамический :key, а передать строку?

Вопрос проверяет понимание различий между статическими и динамическими атрибутами в Vue-шаблонах.

Короткий ответ

Если передать строку в key без :, все элементы списка получат одинаковый ключ. Vue не сможет различать элементы между собой. Это ломает алгоритм обновления DOM. В результате возможны визуальные и логические ошибки. Такой key фактически бесполезен.

Длинный ответ

Во Vue наличие : перед key определяет, как интерпретируется значение.

Как Vue читает key

Сравним два варианта:

<li v-for="item in items" key="id"></li>
<li v-for="item in items" :key="item.id"></li>

В первом случае key="id" — это обычная строка "id".
Во втором — значение берётся из данных.

Последствия статического key

Если все элементы имеют одинаковый key:

  • Vue считает их одним и тем же элементом

  • DOM-узлы переиспользуются некорректно

  • состояние компонентов путается

Почему ошибка не всегда заметна

Проблема может проявиться только:

  • при изменении порядка элементов

  • при добавлении или удалении элементов

  • при работе с формами и анимациями

Краткий вывод

key без : превращается в строковый литерал и делает список логически некорректным.

Уровень

  • Рейтинг:

    4

  • Сложность:

    6

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#static

#key

#dynamic

#binding

Подпишись на React Developer в телеграм