본문 바로가기

WIL

React_Life Cycle

 

 

 

 

 

 

 

 

 

 

 

📌 Life cycle

React 컴포넌트 생명 주기가 있다. 생애 주기 또는 라이프사이클(Life cycle)이라고도 많이 표현한다.

컴포넌트가 실행되거나 업데이트되거나 제거될 때, 특정한 이벤트들이 발생한다.

 

 

 

 

📌 Mount

컴포넌트가 처음 실행될 때 그것을 Mount라고 표현한다. 컴포넌트가 시작되면 우선 context, defaultProps와 state를 저장한다.

그 후에 componentWillMount 메소드를 호출하고, render로 컴포넌트를 DOM에 부착한 후 Mount가 완료되면 componentDidMount가 호출된다.

 

주의할 점 : componentWillMount에서는 props나 state를 바꾸면 안 된다. Mount 중이기 때문. 그리고 아직 DOM에 render하지 않았기 때문에 DOM에도 접근할 수 없다.

 

componentDidMount에서는 DOM에 접근할 수 있다. 그래서 여기에서는 주로 AJAX 요청을 하거나, setTimeout, setInterval같은 행동을 한다.

 

정리

  1. state, context, defaultProps 저장
  2. componentWillMount
  3. render
  4. componentDidMount

 

 

 

 

📌 Props Update

 

props가 업데이트될 때의 과정이다. 업데이트되기 전에 업데이트가 발생하였음을 감지하고, componentWillReceiveProps 메소드가 호출된다. 그 후 shouldComponentUpdate, componentWillUpdate가 차례대로 호출된 후, 업데이트가 완료(render)되면 componentDidUpdate가 된다.

이 메소드들은 첫 번째 인자로 바뀔 props에 대한 정보를 가지고 있다. componentDidUpdate만 이미 업데이트되었기 때문에 바뀌기 이전의 props에 대한 정보를 가지고 있다.

shouldcomponentUpdate에서는 아직 render하기 전이기 때문에 return false를 하면 render을 취소할 수 있다. 주로 여기서 성능 최적화를 한다. 

 

 

 

📌 State Update

 

setState 호출을 통해 state가 업데이트될 때의 과정이다. props update와 과정이 같지만, componentWillReceiveProps 메소드는 호출되지 않는다. 그리고 메소드의 두 번째 인자로는 바뀔 state에 대한 정보를 가지고 있다. componentDidUpdate는 두 번째 인자로 바뀌기 이전의 state에 대한 정보를 가지고 있다.

 

  1. shouldComponentUpdate
  2. componentWillUpdate
  3. render
  4. componentDidUpdate

 

 

 

 

📌 Unmount

 

컴포넌트가 제거되는 것은 Unmount라고 표현한다. componentWillMount에서 주로 연결했던 이벤트 리스너를 제거하는 등의 여러 가지 정리 활동을 합니다.

 

 

  1. componentWillUnmount

다행히도 용도에 맞지 않는 메소드를 사용하면 React에서 자체적으로 에러 메시지를 띄워 줍니다. componentDidMount나 render에 setState를 사용한 경우도 에러 메시지를 띄웁니다.

 

'WIL' 카테고리의 다른 글

Mini Project  (0) 2023.05.14
Axios  (0) 2023.05.07
React_State, Props  (1) 2023.04.23
DOM과 Virtual DOM, props와 state  (0) 2023.04.17
JavaScript_ES  (0) 2023.04.09