Почему в React считается плохой практикой использовать индекс массива в качестве key при рендеринге списков?

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

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

Что ответить на собеседовании

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

Подробный разбор

Ответ с пояснениями

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

Например, после удаления первой строки локальное состояние второй может оказаться у нового элемента на её позиции. Используйте стабильный уникальный ID данных, а не случайное значение при каждом рендере. Индекс допустим для действительно статического списка без перестановок и зависимого состояния, но как общий выбор делает поведение хрупким.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее