- 클래스 컴포넌트
- componentDidMount
- componentDidUpdate
- componentWillUpdate
- 함수 컴포넌트
- 렌더링에 기반한 부수효과 한 곳에서 처리
- 컴포넌트를 외부 시스템과 연결
- useEffect
- 렌더링 후의 동작
- useLayoutEffect
- 렌더링 전의 동작
- 렌더링을 위한
- 레이아웃 정보 제공
- 뷰포트 내에서 요소의 위치 결정
- 컴포넌트가 두 번 렌더링되고, 화면을 다시 그리기 전에 브라우저 차단. 성능에 영향을 미치므로 필요한 경우에만 사용
- useInsertionEffect
- 의존성 배열
- 반응형 의존성 로직
- 배열에 값이 있으면
- 의존성의 변경에 따라 설정 콜백 재실행
- 빈 의존성 배열
- 의존성이 없으므로 최초에만 설정 콜백 적용
- 의존성 배열 전달 안하면
- 매 렌더링마다 설정 콜백 호출
- 배열에 값이 있으면
- rendering trigger
- 반응형 의존성 로직
- cleanup 콜백은 이전 상태를 기준으로 정리되고, 설정 콜백은 새로운 상태를 이용해 등록 - Closures 특징
- useEffect 개발모드에서 두번 실행되는 이유