ReactJS Fragments provide a way to group a list of children without adding extra nodes to the DOM. Normally, when you render a list of items in ReactJS, you would use a parent element to group them, like this:
function MyList() {
return (
<div>
<Item />
<Item />
<Item />
</div>
);
}
This works, but it can add extra nodes to the DOM that are not necessary. Fragments provide a way to group the items without adding an extra DOM element:
function MyList() {
return (
<>
<Item />
<Item />
<Item />
</>
);
}
In this example, the <> and </> tags create a fragment that contains the three Item components. This will render the same result as the previous example, but without the extra div element.
Fragments can also take a key prop, just like any other React component. This can be useful if you need to map over a list of items and render them as fragments:
function MyList(props) {
return (
<>
{props.items.map(item => (
<React.Fragment key={item.id}>
<Item item={item} />
</React.Fragment>
))}
</>
);
}
In this example, the items prop is mapped over and rendered as a list of Item components, each wrapped in a React.Fragment with a unique key prop.
Using fragments can help keep your code cleaner and more efficient by avoiding unnecessary DOM elements, especially when rendering long lists of items.