Sobes.tech
Назад к вопросам
Middle
2

Что будет, если при рендеринге списка в React использовать индекс в качестве key?

Компании, где спрашивали
нейровэд

Ответ от нейросети

sobes.tech AI

Использование индекса массива в качестве key при рендеринге списков в React может привести к проблемам с производительностью и корректностью обновлений UI. key помогает React эффективно определять, какие элементы изменились, добавились или удалились.

Если использовать индекс как ключ, то при изменении порядка элементов или вставке/удалении элементов React может неправильно сопоставить компоненты, что вызовет:

  • Неправильное сохранение состояния компонентов
  • Повторный рендер без необходимости
  • Ошибки в анимациях и фокусе

Индексы допустимы как ключи только если список статичен и не изменяется во время жизни компонента. В остальных случаях лучше использовать уникальные и стабильные идентификаторы элементов.

Пример неправильного использования:

{items.map((item, index) => (
  <ListItem key={index} data={item} />
))}

Лучше:

{items.map(item => (
  <ListItem key={item.id} data={item} />
))}