react-dom 에서 가져오며 한 컴포넌트에 랜더링되는 html 코드를 dom내의 다른곳으로 옮겨준다.
포털을 생성하기 위해 JSX와 랜더링할 DOM노드를 createPortal에 전달하여 호출한다.
import { createPortal } from 'react-dom';
export default function MyComponent() {
return (
<div style={{ border: '2px solid black' }}>
<p>This child is placed in the parent div.</p>
{createPortal(
<p>This child is placed in the document body.</p>,
document.body
)}
</div>
);
}
결과
DOM 구조 확인
body>
<div id="root">
...
<div style="border: 2px solid black">
<p>This child is placed inside the parent div.</p>
</div>
...
</div>
<p>This child is placed in the document body.</p>
</body>