Notes
[React / 라이프 사이클] 생명주기
Kool Jay
2020. 7. 15. 18:51
리액트를 다루는 기술을 보면서 학습하던 중 중요한 부분들은 블로그에 정리 중에 있습니다. 아직 정리가 덜 끝나 간단한 부분 몇개만 공개를 하고 추후(언제 될지는 몰라요...) 포스팅 하도록 하겠습니다. 오늘은 어플리케이션 개발에 많은 혼란을 가져오는 부분 중 하나인 라이프 사이클에 대한 정리 부분을 공개합니다.
라이프 사이클
모든 리액트 컴포넌트에느 라이프사이클이 존재. 컴포넌트의 수명은 페이지에 렌더링되기 전인 '준비 과정'에서 시작하여 페이지에서 사라질 때 '끝'남.
메서드
- Will 접두사 - 어떤 작업을 작동하기 전에 실행되는 메서드
- Did 접두사 - 어떤 작업을 작동한 후 실행되는 메서드
컴포넌트의 라이프 사이클
1. 마운트 - 페이지에 컴포넌트가 나타남
마운트 과정에서 호출하는 메서드
- constructor: 컴포넌트를 새롭게 만들 때 호출되는 클래스 생성자
- getDerivedStateFromProps: props의 값을 state에 넣을 때 사용하는 메서드
- render: UI를 렌더링하는 메서드
- componentDidMount: 컴포넌트가 웹 브라우저상에 나타난 후 호출하는 메서드
2. 업데이트 - 컴포넌트 정보를 업데이트 (리렌더링)
업데이트가 일어나는 경우
- props가 바뀔 때
- state가 바뀔 때
- 부모 컴포넌트가 리렌더링될 때
- this.forceUpdate로 강제 렌더링을 트리거할 때
업데이트가 일어나는 경우 호출하는 메서드
- 업데이트를 발생시키는 경우가 실행된 경우 (위의 원인)
- getDerivedStateFromProps: (마운트 과정 및 업데이트가 시작하기 전 호출) props의 값을 state에 넣을 때 사용하는 메서드
- shouldComponentUpdate: 컴포넌트 리렌더링을 결정하는 flag. true 반환 시 라이프 사이클의 다음 메서드 실행 / false 반환 시 작업중지. this.forceUpdate() 함수를 호출하면 이 과정을 생략하고 바로 render 함수 호출
- render: 컴포넌트 리렌더링
- getSnapshotBeforeUpdate: 업데이트 반영 전 snapshot을 가져오는 메서드
- componentDidUpdate: 컴포넌트의 업데이트 작업이 끝난 후 호출하는 메서드
3. 언마운트 - 페이지에서 컴포넌트가 사라짐
언마운트 과정에서 호출하는 메서드
- componentWillUnmount: 컴포넌트가 브라우저에서 사라지기 전 호출하는 메서드
출처: 리액트를 다루는 기술