본문 바로가기

기록/TIL

[TIL] 생명주기 / useEffect

생명주기

리액트는 컴포넌트를 생성하고 렌더링하다가 어떤 시점이 되면 소멸한다. 이러한 과정을 컴포넌트의 생명주기(lifecycle)라고 표현한다.

 

모든 리액트 컴포넌트는 Mount, Update, Unmount 세 가지의 단계로 구분되는 생명주기를 갖는다.

Mount

컴포넌트가 생성되는 순간, 즉 컴포넌트가 화면에 처음 렌더링되는 시점이다.

Update

마운트 이후에 컴포넌트가 다시 렌더링되는 시점이다.

Unmount

렌더링에서 제외되는 순간, 즉 컴포넌트가 화면에서 사라지는 시점이다.

 

 

useEffect

useEffect란?

useEffect는 컴포넌트의 사이드 이펙트를 제어하는 훅이다.

 

리액트에서의 사이드 이펙트란 어떤 동작에 따른 부수적인 효과 또는 파생되는 효과다.

useEffect 사용법

useEffect(콜백_함수, 의존성_배열);

 

useEffect를 호출하고 첫번째 인수로 콜백 함수와 두번째 인수로 의존성 배열을 넣으면 된다.

 

의존성 배열은 해당 이펙트가 의존하고 있는 배열인데 배열 안에 있는 변수 중에 하나라도 값이 변경되었을 때 콜백 함수가 실행된다.

 

useEffect를 통해 생명주기 함수 대체

useEffect 훅은 클래스 컴포넌트에서 제공하는 생명주기 함수인 componentDidMount(), componentDidUpdate(), componentWillUnmount()와 동일한 기능을 하나로 통합해서 제공한다.

 

Mount

의존성 배열로 빈 배열을 넣으면 된다.

 

useEffect는 의존성 배열에 있는 값이 변경되어야만 실행되기 때문에 콜백 함수는 해당 컴포넌트가 처음 마운트될 때 이후에는 실행되지 않는다.

 

Update

의존성 배열을 생략하면 된다.

 

콜백 함수는 마운트 될 때 한 번 실행된 다음에 리렌더링될 때마다 계속 실행된다.

 

Unmount

의존성 배열로는 빈 배열을 넣고 콜백 함수 안에서 반환하는 함수를 작성하면 된다.

 

콜백 함수가 반환하는 함수를 정리함수라고 표현하는데 정리함수는 컴포넌트가 언마운트될 때 호출한다.

 

 

 

출처 : 한 입 크기로 잘라먹는 React

'기록 > TIL' 카테고리의 다른 글

[TIL] useMemo / React.memo / useCallback  (1) 2024.11.14
[TIL] useReducer  (0) 2024.11.13
[TIL] State 끌어올리기 / useRef  (0) 2024.11.11
[TIL] React Hooks / useState / Custom Hook  (0) 2024.11.10
[TIL] JSX / Props / 이벤트 속성  (1) 2024.11.09