Разбери, можно ли использовать Key вне списка: при каких условиях и какие ограничения.
Продвинутые темы
Использовать `key` вне списка можно, но обычно не нужно; особый и полезный случай — принудительно пересоздать компонент, сменив его `key`.
Обычно key — для списков
key в первую очередь нужен при рендере массивов, чтобы React отслеживал элементы. Одиночному элементу вне списка key обычно не требуется.
Полезный приём — сброс компонента через key
Смена key заставляет React размонтировать старый и смонтировать новый компонент (со сбросом всего состояния):
// При смене userId форма полностью пересоздаётся и сбрасывает состояние
<UserForm key={userId} userId={userId} />Применение:
- Сбросить внутреннее состояние формы при смене сущности.
- Перезапустить анимацию/эффект.
- Форсировать «чистый» ремоунт вместо ручного сброса стейта.
Что происходит
- Тот же
key→ React обновляет существующий компонент (сохраняет состояние). - Другой
key→ React считает это другим компонентом: размонтирует старый, монтирует новый.
Ограничения и осторожность
- Пересоздание сбрасывает всё состояние и вызывает ремоунт (эффекты, инициализация) — это дороже обычного обновления.
- Не злоупотреблять как «костыль» вместо правильного управления состоянием.
keyне передаётся в props (зарезервирован React).
Коротко для собеседования
Да, key можно использовать вне списка — как приём для принудительного ремоунта: смена key размонтирует старый компонент и монтирует новый, сбрасывая состояние (например, <Form key={userId} />). Это дороже обычного обновления, применять осознанно, а не как костыль.