라이프사이클
- constructor
- getDerivedStateFromProps
- shouldComponentUpdate: 리렌더링을 수행할지 여부를 결정
- render
- getSnapshotBeforeUpdate
- componentDidMount: 이벤트 등록, setTimeout, Ajax 등의 작업처리 용도
- componentDidUpdate: 리렌더링을 완료한 뒤 수행됨
- componentWillUnmount: 컴포넌트를 DOM에서 제거할 때 수행됨. 이벤트, 직접 생성한 DOM 등의 정리작업 용도
3가지 그룹
- Render: 순수하고 부작용없이 React에 의해 일시중지/중단/재시작 될수 있음
- Pre-commit: DOM을 읽을 수 있음
- Commit: DOM을 사용하여 부작용을 실행하고 업데이트를 예약할 수 있음