SOOM_BLOG [숨숨 블로그]

React Portals 본문

TIL/react

React Portals

soomst 2022. 2. 16. 16:45

React Portals

컴포넌트를 렌더링 시킬 때 렌더링 시킬 DOM을 선택하여 부모 컴포넌트의 바깥에서도 렌더링 할 수 있게 해주는 기능

modal은 페이지 위의 오버레이이며, 논리적으로 모든 것 위에 위치해야한다.
스타일링을 통해 div가 modal처럼 보이게 하는 것은 바람직하지 않음.
이러한 부분을 해결하기 위해 React Portals를 배워보자.

portal 이용 방법

  1. 컴포넌트를 이식할 위치가 필요함.
    index.html 에 이식 위치를 정한다. (index.html에서는 다양한 컴포넌트에 대한 여러 루트들을 만들 수 있다.)
  2. 해당 위치에 포털이 필요함을 컴포넌트에게 알려야 한다.
    • 리액트 노드 : 렌더링 되어야 하는 리액트 노드 (반드시 JSX여야 한다)
    • 포인터 : 요소들이 렌더링 되어야 하는 실제 DOM 안의 컨테이너를 가리킨다.
  3. import ReactDom from 'react-dom' ReactDOM.createPortal(리액트 노드, 포인터)

React.render 와 다름 주의

'TIL > react' 카테고리의 다른 글

useCallback이란?  (0) 2022.02.27
리액트 작동 원리(1)  (0) 2022.02.17
useImperativeHandle  (0) 2022.02.10
react) CONTEXT  (0) 2022.02.07
useState() VS useReducer()  (0) 2022.01.26