Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

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

Чем отличается key="id" от :key="id" во Vue?

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

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

key="id" передаёт строку "id", а :key="id" передаёт значение переменной id. В первом случае все элементы получают одинаковый ключ. Во втором — каждый элемент получает свой уникальный ключ. Для списков подходит только динамический вариант. Это критично для корректного обновления DOM.

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

Различие между key="id" и :key="id" является частным случаем общего правила биндинга атрибутов во Vue.

Статические и динамические атрибуты

Во Vue:

  • атрибут без : трактуется как строка

  • атрибут с : вычисляется как JavaScript-выражение

Разбор примера

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

Здесь каждый элемент получает одинаковый key.

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

Здесь key берётся из данных конкретного элемента.

Почему это критично

Корректный key:

  • обеспечивает стабильное сопоставление элементов

  • предотвращает ошибки состояния

  • оптимизирует обновление DOM

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

Для списков во Vue всегда нужно использовать динамический :key, а не строковый key.

Уровень

  • Рейтинг:

    5

  • Сложность:

    5

Навыки

  • JavaScript

    JavaScript

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

#key

#binding

#dynamic

#attribute

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