제가 리엑트를 처음 접한건 2017년 경 강남에서 열였던 컨프런스 세션이었습니다. 그때 당시 리엑트는 다소 러닝커브가 높아보였습니다. 클래스형 컴포넌트의 복잡함, 리덕스 등등 그래서 Vue가 쉽고 간편하다고 각광 받기도 했습니다. 하지만 이후 React는 많은 변화를 했습니다. 그중 하나가 Hooks 개념입니다. 확실히 페이스북이라는 기업에서 케어하는 라이브러리다보니 사용자의 요구에 애자일스럽게 대응하는 느낌입니다.
리엑트 공식 홈페이지에서는 가급적 함수형 컴포넌트 + Hooks 사용을 권장하고 있습니다.
Hooks를 배우실 분들은 이 포스팅에서 마운트, 업데이트, 언마운트의 개념만 잡으시고 Hooks 자료로 넘어가시면 됩니다. 과거 클래스형 컴포넌트에서 어떠한 불편함이 발생하였고 이를 함수형 컴포넌트와 Hooks 어떻게 대체하였는지 궁금하시다면 시리즈를 정주행 하시면 됩니다.🙃
모든 리액트 컴포넌트는 라이프사이클(생명 주기)이 존재합니다. 클래스형 컴포넌트에서만 사용이 가능합니다. 함수형 컴포넌트는 사용할 수 없습니다. 다만, 리액트 v16.8 이후에는 Hooks 개념이 도입되면서 라이프 사이클과 같은 작업을 처리할 수 있습니다.
라이플 사이클의 종류는 총 9가지입니다. 이를 접두사, 카테고리 별로 나누어 살펴보겠습니다.
DOM이 생성되고 웹 브라우저상에 나타나는 것을 마운트라고 합니다.
마운트의 종류(위부터 아래로 메서드 호출 순서)
컴포넌트는 아래의 4가지 조건에서 업데이트를 합니다.
컴포넌트 업데이트 조건 4가지
업데이트의 종류 (위로부터 호출순서)
마운트의 반대과정이며 컴포넌트를 DOM에서 제거하는 것을 언마운트라고 합니다.
언마운트 종류
componentWillUnmount() : 컴포넌트가 웹 브라우저상에서 사라지기 전에 호출하는 메서드입니다.
이렇게 크게 9가지입니다. 이를 한눈에 보자면 아래의 그림과 같이 표현됩니다.
이번 포스팅에서는 9가지 라이프사이클 API 메서드들의 종류과 카테고리로 살펴보았습니다. 이번 포스팅은 클래스형 컴포넌트 맛보기 포스팅입니다.
다음 포스팅에선 함수형 + Hooks에 대해서도 다루며 클래스형 컴포넌트와 어떤 차이가 있는지 보겠습니다.
ref)
https://ko.reactjs.org/docs/react-component.html
https://velopert.com/3631
http://www.yes24.com/Product/Goods/62597469
https://ejko0911.medium.com/react-lifecycle-api-61c32654e019