Представьте, что у вас есть элемента, и вы хотите вставить в него пару тегов.Элемент React может иметь только один корневой узел, поэтому первое, что приходит на ум, - это обернуть все теги в , например, следующее:
const element = () => {
return (
<div>
<li>Some list item</li>
<li>Some other list item</li>
</div>
);
};
ReactDOM.render(element, document.getElementById('root'));
, что приведет к следующему HTML:
<ul id="root">
<div>
<li>Some list item</li>
<li>Some other list item</li>
<div>
</ul>
Теперь мы успешно нарушили семантику HTML, недопустимо, чтобы HTML имел div непосредственно внутри элемента ul.Одним из способов избежать этого является использование React Fragments :
const element = () => {
return (
<Fragment>
<li>Some list item</li>
<li>Some other list item</li>
</Fragment>
);
};
ReactDOM.render(element, document.getElementById('root'));
Fragment не вставляет дополнительный HTML-тег, который не нарушит семантику.Вот результирующий HTML
<ul id="root">
<li>Some list item</li>
<li>Some other list item</li>
</ul>