React
[React] useEffect 랜더링 순서
캐럿노트
2023. 12. 26. 17:37
기본 형태
// 실행순서 : A -> B -> A
useEffect(() => {
// 이 컴포넌트가 마운트될 때 실행되는 함수 (A)
return () => {
// 이 컴포넌트가 언마운트될 때 실행되는 함수 (B)
}
}, [])
Example - ToDo App
위 기본형태의 실행 순서를 ToDo로 예제로 보면
// todo가 A -> B로 변경될 때
useEffect(() => {
// todo가 바뀔 때마다 실행됨
return () => {
// todo가 바뀌기 직전에 실행됨 (cleanUp)
}
}, [todo])
todo가 A -> B로 변경될 때의 실행순서는 A useEffect → A cleanUp → B useEffect 로 이루어진다.
참고로 useEffect의 배열 부분인 의존성(Dependency)가 없으면 랜더링마다 useEffect가 실행되어 불필요한 랜더링이 발생할 수 있다.
useEffect(() => {
return () => {
}
})