Fragments
는 DOM에 별도의 노드를 추가하지 않고 여러 자식을 그룹화할 수 있다.
class Table extends React.Component {
render() {
return (
<table>
<tr>
<Columns />
</tr>
</table>
);
}
}
렌더링 된 HTML 유효하려면 Comlums
태그가 여러 td
엘리먼트만 반환해야한다.
class Columns extends React.Component {
render() {
return (
<div>
<td>Hello</td>
<td>World</td>
</div>
);
}
}
이렇게 부모 div로 자식을 감싸면 td
는 직접적으로 tr
의 자식이어야하는 HTML규칙으로 인해 렌더링이 유효하지 않게된다.
class Columns extends React.Component {
render() {
return (
<React.Fragment>
<td>Hello</td>
<td>World</td>
</React.Fragment>
);
}
}
class Columns extends React.Component {
render() {
return (
<>
<td>Hello</td>
<td>World</td>
</>
);
}
}
function Glossary(props) {
return (
<dl>
{props.items.map(item => (
// React는 `key`가 없으면 key warning을 발생합니다.
<React.Fragment key={item.id}>
<dt>{item.term}</dt>
<dd>{item.description}</dd>
</React.Fragment>
))}
</dl>
);
}
https://ko.legacy.reactjs.org/docs/fragments.html#short-syntax (자습서 정리)