TIL/react
React Portals
soomst
2022. 2. 16. 16:45
React Portals
컴포넌트를 렌더링 시킬 때 렌더링 시킬 DOM을 선택하여 부모 컴포넌트의 바깥에서도 렌더링 할 수 있게 해주는 기능
modal은 페이지 위의 오버레이이며, 논리적으로 모든 것 위에 위치해야한다.
스타일링을 통해 div가 modal처럼 보이게 하는 것은 바람직하지 않음.
이러한 부분을 해결하기 위해 React Portals를 배워보자.
portal 이용 방법
- 컴포넌트를 이식할 위치가 필요함.
index.html 에 이식 위치를 정한다. (index.html에서는 다양한 컴포넌트에 대한 여러 루트들을 만들 수 있다.) - 해당 위치에 포털이 필요함을 컴포넌트에게 알려야 한다.
- 리액트 노드 : 렌더링 되어야 하는 리액트 노드 (반드시 JSX여야 한다)
- 포인터 : 요소들이 렌더링 되어야 하는 실제 DOM 안의 컨테이너를 가리킨다.
import ReactDom from 'react-dom' ReactDOM.createPortal(리액트 노드, 포인터)
React.render 와 다름 주의