> Почему нельзя использовать индекс массива как ключ в React (React)

Уровень: middle · Роль: frontend · Категория: Технические вопросы

Компании: Kaspersky, Exness

Стек: React

> Пример ответа

Использование индекса массива в качестве ключа (key) в React - это антипаттерн, который может привести к проблемам с производительностью и некорректным поведением компонентов. Основная причина в том, что React использует ключи для идентификации элементов при обновлении списка. Если ключом является индекс, то при изменении порядка, добавлении или удалении элементов индексы сдвигаются, и React может неправильно сопоставить старые и новые элементы. Это приводит к перерисовке не тех компонентов, потере состояния (например, фокус в инпуте, данные формы) и лишним ререндерам.

Например, если у вас есть список ['a', 'b', 'c'] с ключами 0, 1, 2, а затем вы удаляете первый элемент, список становится ['b', 'c'] с ключами 0, 1. React подумает, что элемент с ключом 0 изменился с 'a' на 'b', а элемент с ключом 1 - с 'b' на 'c', вместо того чтобы просто удалить первый элемент. Это может сломать анимации и вызвать неожиданные побочные эффекты.

Исключение - статический список, который никогда не изменяется (не пересортировывается, не добавляется/удаляется). В таком случае индекс допустим, но на практике лучше всегда использовать уникальный и стабильный идентификатор (например, id из данных).

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью