Mount
: 컴포넌트 실행 후 DOM이 생성되고 웹 브라우저에 나타날 때
constuctor
: 컴포넌트 생성시 호출되는 생성자
getDerivedStateFormPorps
: props값을 state와 동기화
render
: UI를 렌더링
componentDidMount
: 컴포넌트가 웹 브라우저에 나타난 후 호출
Update
: 컴포넌트를 업데이트 할 때
getDerivedStateFromProps
: props값을 state와 동기화
shouldComponentUpdate
: true / false를 통해 리렌더링 여부를 결정, 만약 false일 경우 여기서 사이클을 마침 (업데이트 할 사항이 없다고 판단)
render
: UI를 렌더링
getSnapshotBeforeUpdate
: 컴포넌트 변화를 DOM에 반영하기 전에 호출
componentDidUpdate
: 컴포넌트 업데이트 작업이 끝나면 호출
UnMount
: 컴포넌트를 DOM에서 제거할 때
componentWillUnmount
: 컴포넌트가 웹 브라우저 상에서 사라지기 전에 호출
예전에는 컴포넌트에 state 필요한가요 ? 물어서 state가 필요하면 클래스형, 필요없으면 함수형으로 개발했다는 말을 들은 적이 있다.
그러나 요새 Hooks
의 등장으로 판도는 바뀌었고 거의 함수형으로 개발한다.
왜냐하면 리액트 클래스형으로 개발하려면 라이프 사이클에 대해서 자세히 알아야 하며,
클래스의 state나 이벤트 핸들러를 사용할 때 this를 통해 접근해야 하는 번거로움이 있다.
또, 메모리 자원을 함수형 컴포넌트보다 덜 사용한다고 하고, 컴포넌트 선언도 함수형이 쉽기 때문에 함수형 컴포넌트를 통한 개발이 대세가 되었다.