Основная идея
React Fragment позволяет группировать несколько элементов без добавления лишнего DOM-узла. Это решает проблему обязательного единственного корневого элемента в JSX и сохраняет чистую структуру HTML.
Ключевые аспекты
- Группировка без обёртки — Fragment не создаёт элемент в DOM
- Два синтаксиса —
<Fragment>и сокращённый<></> - Атрибут key — можно добавить только к полной форме
<Fragment key={id}> - Семантичность — не нарушает структуру HTML (особенно важно для таблиц, списков)
Когда использовать
- Возврат нескольких элементов из компонента
- Условный рендеринг группы элементов
- Итерация с возвратом нескольких элементов на каждой итерации
- Сохранение правильной HTML-структуры (table, dl, flexbox)
Плюсы
- Нет лишних DOM-узлов
- Лучшая производительность (меньше элементов)
- Корректная семантика HTML
- Не ломает CSS-стили (flexbox, grid)
Частые ошибки на собеседованиях
- Не знают про короткий синтаксис
<></> - Пытаются добавить key к короткому синтаксису — это невозможно
- Используют div вместо Fragment там, где это ломает стили или семантику
- Не понимают зачем Fragment нужен — «можно же div обернуть»
- Забывают импортировать Fragment при использовании с key