React Fragments — это специальный компонент в React, который позволяет группировать несколько дочерних элементов без добавления лишних DOM-узлов в итоговый HTML. Это особенно полезно, когда нужно вернуть несколько элементов из компонента, но оборачивать их в div нельзя из-за требований вёрстки или семантики.
function List() {
return (
<>
<li>Пункт 1</li>
<li>Пункт 2</li>
</>
);
}
function Table() {
return (
<React.Fragment key={someKey}>
<tr>...</tr>
<tr>...</tr>
</React.Fragment>
);
}
<> </>
— это сокращённая запись <React.Fragment></React.Fragment>
{items.map(item => (
<React.Fragment key={item.id}>
<td>{item.name}</td>
<td>{item.price}</td>
</React.Fragment>
))}
key
в полной версии)function Glossary(props) {
return (
<dl>
{props.items.map(item => (
<React.Fragment key={item.id}>
<dt>{item.term}</dt>
<dd>{item.description}</dd>
</React.Fragment>
))}
</dl>
);
}
function Columns() {
return (
<>
<td>Hello</td>
<td>World</td>
</>
);
}
function ConditionalGroup({ condition }) {
return condition ? (
<>
<ComponentA />
<ComponentB />
</>
) : null;
}
Характеристика | Fragment | Div |
---|---|---|
Добавляет DOM-узел | Нет | Да |
Поддерживает стили | Нет | Да |
Можно передать key | Да | Да |
Влияет на вёрстку | Нет | Да |
React Fragments — это мощный инструмент для группировки элементов без добавления лишних DOM-узлов. Они помогают сохранить семантику вёрстки, избежать "div soup" и оптимизировать производительность. Используйте их везде, где нужно вернуть несколько элементов без ненужных обёрток.