티스토리 뷰
리액트 16의 두 번째 멋진 기능은 portals이다. 생각보다 유용해 보이지 않을 수 있는 데 사용하다 보면 유용함을 느낄 수 있다. 기본적으로 리액트는 div를 찾아서 마운트를 한다. 가끔은 리액트 root 밖에서 마운트를 해야 될 때가 있다


예를 들어 헤더가 root 밖에 있고 헤더의 타이틀 및 CSS를 변경하고 싶을 때 또는 다른 사이트를 로딩할 때 등이다. 이럴 경우 portals를 사용하면 된다. portals은 리액트 root 밖에서 리액트를 넣을 수 있도록 해준다.



span 태그에 id를 지정해서 만들고 컴포넌트에서 엘리먼트를 리턴하는 대신 portals을 리턴하면 된다.
import { createPortal } from 'react-dom';
const Message = () => 'Just Clicked';
class Portals extends Component {
render() {
return createPortal (<Message/>, document.getElementById('clickme'));
}
}
react-dom을 import 하여 createPortal로 리턴하는데 portals에게 어디에 마운트 할지를 알려줘야 한다. 이때 span 태그의 id를 명시하며 된다. 다른 페이지를 로딩, iframe, 리액트 플러그인 등 리액트 외부 DOM에서 렌더를 할 때 유용하게 사용된다. 이게 portals이다.
'프로그래밍 > Front end' 카테고리의 다른 글
[Front end] React 16 #5 set State null (0) | 2019.11.06 |
---|---|
[Front end] React 16 #4 Error Boundaries (0) | 2019.11.05 |
[Front end] React 16 #2 return type (0) | 2019.10.12 |
[Front end] React 16 #1 (0) | 2019.10.09 |
[Front end] 바닐라 JS(Vanilla JavaScript)를 먼저 배우는 것이 왜 중요한가? (0) | 2019.10.06 |
공지사항
최근에 올라온 글
최근에 달린 댓글
링크
TAG
- 리액트 16
- 오라클
- 개발환경
- 회고
- React
- Java
- 제주도 여행
- Eclipse
- Linux 명령어
- effective java
- sort algorithm
- javascript
- Collection
- 리액트
- 제주도 3박4일 일정
- 자바
- Tomcat
- 리눅스 명령어
- 자바스크립트
- SQL
- 이직
- Maven
- 성능분석
- 프로그래머스
- 프로그래머
- 경력관리
- spring
- 정렬 알고리즘
- 소프트웨어공학
- 오라클 내장 함수
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함