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.