topbg
React

React Life Cycle

2023.03.03

리액트에서 component가 생성되고 사라지는 생명주기(life cycle)란?

React LifeCycle 순서도
React LifeCycle 순서도

class Life Cycle

  • 클래스의 경우 -> constructor -> render -> ref -> componentDidMount
  • (setState/props 바뀔때 -> shouldComponentUpdate(true) -> reRender -> componentDidUpdate)
  • parents component에서 children component가 사라질 경우 -> componentWillUnmount -> 소멸

1. componentDidMount(){}

  • 처음에 렌더함수가 성공적으로 수행했다면 componentDidMount가 실행됨, -> 비동기 요청을 많이 함
  • 리렌더링이 일어날때 실행되지 않음
  • 그렇기에 함수 안쪽에 위치해야 한다.

2. componentDidUpdate() {}

  • 리랜더링 후 실행

3. componentWillUnmount() {}

  • 컴포넌트가 제거 되기 직전, 부모 컴포넌트가 자식 컴포넌트를 삭제할때 실행 됨, 비동기 요청 정리를 많이 함

Hooks Life Cycle

useEffect를 이용하여 class life style과 같은 효과를 낼 수 있다.

useEffect(() => {
  // 모든 값의 변화에 인지함
  console.log("component did mount");
});
useEffect(() => {
  // 최초에 한번 인지
  console.log("component did mount");
}, []); //ComponentDidMount
useEffect(() => {
  // name 값의 변화에만 인지함
  console.log("component did update");
}, [name]); //componentDidUpdate
useEffect(() => {
  return () => {
    console.log("component Will Unmount"); //componentWillUnmount
  };
});

참조

이해한 것을 정리하다보니
잘못된 부분이 있을 수도 있습니다.
댓글로 잘못된 부분을 알려주세요.