React.Fragment 사용이유

jeong dain·2022년 12월 28일
0

리액트에서는 하나의 컴포넌트에서 여러개의 앨리먼트가 반환되는데 이때 return문 안에는 앨리먼트들을 묶어주는 최상위 태그가 있어야한다.

다음 코드에서 Table 컴포넌트가 출력되면

const Table = () => {
	return (
  		<table>
      		<tr>
        		<Columns />
      		</tr>
    	</table>
	)      
}

const Column = () => {
	return (
  		<div>
    		<td>Hello</td>
    		<td>World</td>
  		</div>
	);
}

이러한 형태를 가지게 된다.

<table>
  <tr>
    <div>
      <td>Hello</td>
      <td>World</td>
    </div>
  </tr>
</table>

이때 불필요한 div 태그 사용을 막기 위해 React.Fragment 또는 단축문법을 사용한다.

// React.Fragment
return (
  <React.Fragment>
    <td>Hello</td>
    <td>World</td>
  </React.Fragment>
);

// 단축문법
return (
  <>
    <td>Hello</td>
    <td>World</td>
  </>
);

React.Fragment 와 단축문법의 차이점은 key attribute를 할당할 수 있는가 없는가 인데 map을 이용해서 리스트를 출력할 경우 아래와 같은 형태로 키값을 명시적으로 표시할 수 있다. 키값이 필요하지 않을 경우 단축문법을 사용해서 간단하게 맵핑작업을 해주면 된다.

{props.items.map(item => (
  <React.Fragment key={item.id}>
    <dt>{item.term}</dt>
    <dd>{item.description}</dd>
  </React.Fragment>
))}
profile
Web Frontend Developer #TypeScript #React #NextJS🤸‍♀️

0개의 댓글