-
[리액트 기초]FragmentReact 2023. 3. 31. 17:55
1.Fragment를 사용하는 이유
공식문서의 예제를 확인해보자.아래와 같은 테이블 컴포넌트가 있다.
const Table = () => { return( <table> <tr> <Columns /> </tr> </table> ); }
<Columns />는 여러 <td>를 반환 해야 하는데, div로 자식을 감싼다면 렌더링 된 table은 유효하지 않을 것이다.
const Columns = ()=> { return ( <div> <td>Hello</td> <td>World</td> </div> ); }
Table의 결과
<table> <tr> <div> <td>Hello</td> <td>World</td> </div> </tr> </table>
Fragments는 이런식으로 의미없는 <div>를 사용하는 문제를 해결해준다.
import { Fragment } from "react"; const Table = () => { return ( <Fragment> <td>Hello</td> <td>World</td> </Fragment> ); }
2.단축 문법
Fragment대신 <></> 이런식의 축약형으로 사용이 가능하다.
import { Fragment } from "react"; const Table = () => { return ( <> <td>Hello</td> <td>World</td> </> ); }
단축문법을 사용할 때 주의해야 할 점은 key를 사용 할 수 없다는 것이다.
key는 Fragment에 전달할 수 있는 유일한 어트리뷰트다.key를 사용해야 하는 상황이라면
<Frgment>문법으로 선언해 줘야 한다.
const Glossary =({items}) => { return ( <dl> {items.map(item => ( <Fragment key={item.id}> <dt>{item.term}</dt> <dd>{item.description}</dd> </Fragment> ))} </dl> ); }
https://ko.reactjs.org/docs/fragments.html
'React' 카테고리의 다른 글
[리액트 기초]context 사용법 (0) 2023.04.01 [리액트]portal (0) 2023.03.31 [리액트 기초]Props (0) 2023.03.24 [리액트 기초]State-리액트의 불변성 (0) 2023.03.15 CSR과 SSR (0) 2023.03.09