PassFront
  1. PassFront
  2. База знаний
  3. Продвинутые темы

Всегда ли нужно указывать key?

Продвинутые темы

Нет, `key` нужно указывать не всегда — только при рендере списков (массивов элементов). Одиночным элементам он не требуется.

Когда key обязателен

При рендере массива элементов через map:

{users.map((user) => (
  <li key={user.id}>{user.name}</li>
))}

React использует key для отслеживания элементов при reconciliation. Без него — предупреждение и возможные баги.

Когда key НЕ нужен

  • Одиночные элементы — обычная разметка без списка:
<div>
  <h1>Заголовок</h1> {/* key не нужен */}
  <p>Текст</p>
</div>
  • Статичный список без изменений — key всё равно желателен, но индекс допустим.

Полезное исключение — key для ремоунта

key можно осознанно использовать вне списка для принудительного пересоздания компонента:

<Form key={userId} /> {/* смена key → ремоунт со сбросом состояния */}

Требования к ключам

  • Уникальные среди соседей.
  • Стабильные (id из данных, не Math.random()).
  • Индекс — только для статичных списков без переупорядочивания.

Коротко для собеседования

key нужен только при рендере списков (map), чтобы React отслеживал элементы при reconciliation. Одиночным элементам не требуется. Осознанное исключение — key для принудительного ремоунта компонента. Ключи должны быть уникальными и стабильными.

Другие вопросы раздела