<React.Fragment>는 React에서 여러 요소를 그룹화하여 하나의 부모 요소처럼 사용하지만, DOM에는 추가적인 태그로 렌더링되지 않도록 해주는 래퍼 컴포넌트입니다. 다음은 <React.Fragment>의 용도와 장점입니다.
1. 여러 요소를 감쌀 때 부모 요소 필요성 해결
React에서는 컴포넌트가 여러 요소를 반환할 때 하나의 부모 요소로 감싸야 합니다. <React.Fragment>를 사용하면 불필요한 <div> 같은 태그를 추가하지 않고 요소를 그룹화할 수 있습니다.
// <div>를 사용한 경우
function Component() {
return (
<div>
<h1>Title</h1>
<p>Paragraph</p>
</div>
);
}
// <React.Fragment>를 사용한 경우
function Component() {
return (
<React.Fragment>
<h1>Title</h1>
<p>Paragraph</p>
</React.Fragment>
);
}
위의 두 코드는 같은 UI를 보여주지만, <React.Fragment>를 사용한 경우 DOM에 <div>가 추가되지 않아 구조가 간결해집니다.
2. 단축 문법 사용
<React.Fragment> 대신 <></>로도 사용할 수 있습니다. JSX에서 지원하는 단축 문법으로, 더욱 간편하게 사용할 수 있습니다.
function Component() {
return (
<>
<h1>Title</h1>
<p>Paragraph</p>
</>
);
}
단축 문법은 속성을 추가할 수 없는 제한이 있으므로, key 속성 등 특수 속성이 필요한 경우에는 <React.Fragment>를 사용해야 합니다.
3. 성능 최적화
불필요한 DOM 노드를 생성하지 않으므로, DOM이 간결해지고 성능 면에서 이점이 있습니다. 특히, 리스트를 렌더링할 때 여러 요소를 묶으면서 추가적인 DOM을 피할 수 있습니다.
function ItemList({ items }) {
return (
<>
{items.map((item, index) => (
<React.Fragment key={index}>
<dt>{item.term}</dt>
<dd>{item.description}</dd>
</React.Fragment>
))}
</>
);
}
위 코드에서 key 속성을 <React.Fragment>에 추가하여 리스트의 각 항목을 구분할 수 있습니다.
'JS' 카테고리의 다른 글
[JS] 배열 안의 객체 중복 제거 (0) | 2024.11.27 |
---|---|
[React] 최상위 컴포넌트에서 사용하는 함수에 return 사용이 안되는 이유 (0) | 2024.11.27 |
[React] 기존 값은 유지하면서 특정 값만 바꾸려고 하는 경우(useState, produce) (0) | 2024.11.26 |
[JS] 객체에 있는 값을 배열로 만드는 방법 (0) | 2024.11.26 |
[JS] 객체 안의 값과 배열의 값이 같을 때 값을 리턴하는 방법 (FINDINDEX 사용) (0) | 2024.11.26 |