React에서는 Children props를 사용해 자식 엘리먼트를 출력에 그대로 전달하는 것이 가능하다.
function FancyBorder(props) {
return (
<div style={{color :props.color}} className={'FancyBorder FancyBorder-' + props.color}>
{props.children}
</div>
);
}
function HelloComponent() {
return (
<FancyBorder color="skyblue">
<div>hi, hello</div>
</FancyBorder>
);
}
ReactDOM.render(
<HelloComponent />,
document.getElementById('root')
);
<FancyBorder>
JSX태그 안에 있는 것들이 FancyBorder
컴포넌트의 childern prop으로 전달된다.
function SplitPane(props) {
return (
<div className="SplitPane">
<div className="SplitPane-left">
{props.left}
</div>
<div className="SplitPane-right">
{props.right}
</div>
</div>
);
}
function App() {
return (
<SplitPane
left={
<Contacts />
}
right={
<Chat />
} />
);
}
children 대신 구멍을 만들어 left, right로 다른 데이터처럼 prop전달을 할 수도 있다.
See the Pen Untitled by sally (@sally0) on CodePen.
'Front-end > React' 카테고리의 다른 글
[React] Proxy 설정하기 (0) | 2022.09.29 |
---|---|
[Next] create-next-app 분석하기 (0) | 2022.08.14 |
[React] .env로 개발/배포 환경 설정하기 (0) | 2022.07.01 |
[React] 커스텀 훅을 사용한 DefualtModal 만들기 (0) | 2022.06.16 |
[React] useRef로 이전 state 얻는 법 (1) | 2022.04.08 |