컴포넌트가 생성되고, 업데이트 되며, 제거되는 과정에서 호출되는 특정 메서드와 단계를 의미함
마운트
컴포넌트가 처음 생성되어 DOM에 추가되는 단계
useEffect(() => {
console.log("컴포넌트가 마운트되었습니다.");
return () => {
console.log("컴포넌트가 언마운트됩니다.");
};
}, []); // 빈 배열로 의존성을 설정하면 마운트/언마운트 시점에만 실행됩니다.
업데이트
컴포넌트가 state나 props 변화로 인해 다시 렌더링되는 단계
useEffect(() => {
console.log("상태가 업데이트되었습니다.");
}, [state]); // 특정 state나 props가 변경될 때만 실행됩니다.
언마운트
컴포넌트가 DOM에서 제거되는 단계
메모리 누수를 방지하기 위해 필요한 정리 작업을 수행(이벤트 리스너 제거, 타이머 해제)
useEffect(() => {
const timer = setInterval(() => console.log("타이머 동작 중"), 1000);
return () => {
clearInterval(timer); // 타이머 해제
console.log("컴포넌트가 언마운트되었습니다.");
};
}, []);