라이프사이클 의미와 메소드

ㄷr r요·2024년 1월 2일

라이프사이클이 의미하는 바에 대해서 설명해주세요.

LifeCycle은 컴포넌트가 브라우저 상에 나타나고, 업데이트되고, 사라지게 되는 과정이다.
컴포넌트의 수명은 보통 페이지에서 렌더링되기 전인 준비 과정에서 시작하여 페이지에서 사라질때 끝이 난다.

react-lifecycle-methods-diagram


라이프사이클 메소드에 대해 설명해주세요.

생명주기 메서드는 클래스형 컴포넌트에서만 사용할 수 있는데, 함수형 컴포넌트에서는 useEffect가 비슷한 개념이다. 물론 작동방식은 다르고, 기능이 100% 대치하지는 않는다.

💛클래스형 컴포넌트의 라이프 사이클

🔅마운트

마운트될 때 발생하는 생명주기들이다.

  • constructor
  • getDerivedStateFromProps
    : props로 받아온 것을 state에 넣을때 사용
  • render
  • componentDidMount
    - 컴포넌트의 첫번째 렌더링이 마치고 나면 호출되는 메서드
    이 메서드가 호출되는 시점에는 우리가 만든 컴포넌트가 화면에 나타난 상태

🔆업데이트

  • getDerivedStateFromProps
  • shouldComponentUpdate
  • 리렌더링 할지 말지 결정하는 메서드이다.
  • render
    getSnapshotBeforeUpdate
  • componentDidUpdate
    - 리렌더링이 마치고, 화면에 우리가 원하는 변화가 모두 반영되고 난 뒤 호출하는 메서드

🟨언마운트

컴포넌트가 화면에서 사라지는걸 의미한다.

  • componentWillUnmount
    - 컴포넌트가 화면에서 사라지기 직전에 호출됨
    : 등록했던 이벤트나 사용했던 외부 라이브러리를 제거

💛함수형 컴포넌트의 라이프 사이클

useEffect(() => {
  console.log('컴포넌트가 화면에 나타남');
  return () => {
    console.log('컴포넌트가 화면에서 사라짐');
  };
}, [deps]);

🔅마운트

useEffect를 사용 할 때에는
첫번째 파라미터에 함수, 두번째 파라미터에 의존값이 들어있는 배열(deps)을 넣는다.
deps 배열이 비워져 있다면 컴포넌트는 처음 나타날때만 등록한 함수가 호출된다.

🔆업데이트

특정 props가 바뀌면 업데이트가 진행된다. deps배열을 통해 호출 조건을 설정할 수 있다.

🟨언마운트

useEffect에서는 함수를 반환할 수 있는데 이를 cleanup 함수라 부른다.
cleanup 함수는 useEffect에 대한 뒷정리를 해준다.

참고 글

profile
개발 공부

0개의 댓글