createPortal – React

createPortal을 사용하면 일부 하위 요소를 DOM의 다른 부분으로 렌더링 할 수 있다.

Portal을 생성하려면 createPortal을 호출하고 JSX와 렌더링할 DOM 노드를 전달한다.

<div>
  <SomeComponent />
  {createPortal(children, domNode, key?)}
</div>

주의사항

Portal의 이벤트는 DOM 트리가 아닌 React 트리에 따라 전파된다.

예를 들어, Portal 내부를 클릭했을 때 Portal이 <div onClick> 으로 감싸져 있으면 해당 onClick 핸들러 이벤트가 실행된다.

이로 인해 문제가 발생한다면, Portal 내부에서 이벤트 전파를 중단하거나 Portal 자체를 React 트리에서 위로 옮겨야 한다.

사용법

1. DOM의 다른 부분으로 렌더링하기