useEffect 훅은 컴포넌트 생명 주기에 따른 코드를 작성하고 싶을 때 사용할 수 있는 훅입니다.
useEffect(() => {
// 실행할 작업
return () => {
// 정리(cleanup) 작업 (옵션)
};
}, [dependencyArray]); // 의존성 배열
컴포넌트 생명주기란, 컴포넌트가 생성되고 삭제가 되는 순간까지 거쳐가는 일련의 주기를 말합니다.
리액트에서는 컴포넌트 생명주기를 ‘생성’, ‘수정(업데이트)’, ‘삭제’의 세 가지로 구분하고 있습니다.
useEffect(() => {
const intervalId = setInterval(() => {
console.log('타이머 동작 중...');
}, 1000);
return () => {
console.log('타이머 정리!');
clearInterval(intervalId);
};
}, []);
useEffect(() => {
console.log('컴포넌트가 마운트되었습니다!');
}, []); // 빈 배열
useEffect(() => {
console.log(`count가 ${count}로 변경되었습니다!`);
}, [count]); // count가 변경될 때만 실행