리액트 라이프 사이클이란?
브라우저상에 나타나고, 업데이트되고, 사라지게될 때와 컴포넌트에서 에러가 났을 때 호출되는 메서드들이다.
리액트 클래스 컴포넌트는 라이프 사이클 메서드를 사용하고, 함수형 컴포넌트는 Hook을 사용한다.
출처:https://projects.wojtekmaj.pl/react-lifecycle-methods-diagram/
컴포넌트가 처음 실행될 때를 Mount라고 표현한다.
constructor : 컴포넌트의 생성자 메서드로 컴포넌트가 만들어지면 가장 먼저 실행되는 메서드이다.
getDerivedStateFromProps : props로 받아온 것을 state에 넣어주고 싶을 때 사용한다.
render : 컴포넌트를 렌더링하는 메서드이다.
componentDidMount : 컴포넌트의 첫번째 렌더링이 마치고 나면 호출되는 메서드로 컴포넌트가 브라우저에 나타난 상태이다. 해당 컴포넌트에서 필요로 하는 데이터를 요청하기 위해 axios, fetch 등을 통해 ajax를 요청하거나 DOM의 속성을 읽거나 직접 변경하는 작업을 진행한다.
Mount(마운트)의 반대 과정으로 컴포넌트를 DOM에서 제거하는 것을 Unmount라고 한다.
componentWillUnmount : 컴포넌트가 브라우저상에서 사라지기 직전에 호출된다.
DOM에 직접 등록했던 이벤트를 제거하고 만약 setTimeout을 걸은것이 있다면 clearTimeout을 통해 제거한다.