Коротка відповідь
middlekey — це унікальний ідентифікатор, який React використовує для відстеження елементів списку під час оновлень. Без key React порівнює DOM-дерево за порядком, що призводить до зайвих перерисувань і потенційних помилок у стані компонентів. Тому key слід задавати на основі стабільного, неперемінного значення (наприклад, id з БД).
Повне пояснення
Що це і навіщо
key– атрибут, що передається в JSX‑елементи списку. Він допомагає React визначити, який елемент змінився, додано чи видалено.
Ключові принципи
keyмає бути унікальним серед братських елементів.- Значення не повинно змінюватися при рендерингу (наприклад, індекс масиву не рекомендується).
- Якщо елемент має власний
idу базі даних, це найкращий варіант.
Як працює
- При оновленні React порівнює новий список з попереднім за
key. - Якщо ключі збігаються, React оновлює лише змінивши елементи.
- Якщо ключі різні, React видаляє старий DOM‑елемент і створює новий.
Практика та реалізація
{items.map(item => (
<li key={item.id}>{item.name}</li>
))}
Тестування
- У Jest можна перевірити, що
keyприсутній:expect(wrapper.find('li')).toHaveLength(items.length);
Оптимізація
- Правильний
keyзменшує кількість перерисувань, що покращує продуктивність.
Часті помилки
- Використання індексу як
key→ неправильне оновлення. - Відсутність
keyу списку → React виведе попередження. - Дублювання
key→ непередбачувана поведінка.
Висновок
key – це механізм, що забезпечує ефективне оновлення списків у React. Його правильне використання критично для стабільності UI та продуктивності.