리액트의
생명주기
란, 컴포넌트가 생성 → 업데이트 → 제거되는 전 과정에서 자동으로 호출되는 함수 흐름 또는 타이밍이다.
이를 통해 비동기 처리, 데이터 불러오기, 정리 작업(cleanup) 등을 할 수 있다.
컴포넌트가 탄생, 화면에 처음 렌더링되는 순간
useEffect(() => {
console.log('마운트됨');
return () => {
console.log('언마운트될 때 실행됨');
};
}, []);
이때:
컴포넌트가 다시 렌더링되는 순간, 리렌더링
useEffect(() => {
console.log('someState 변경됨!');
}, [someState]);
실행 순서:
1. 변경된 상태로 리렌더링
2. 렌더링 완료 후 useEffect 실행
⚠️ 주의
컴포넌트가 화면에서 사라지는, 렌더링에서 제외되는 순간 (컴포넌트가 사용하던 메모리 정리)
useEffect(() => {
// 마운트 or 업데이트 때 실행
return () => {
// 언마운트 시 실행 (cleanup)
};
}, []);
return 함수는:
주로 하는 일:
function Component({ someProp }) {
const [count, setCount] = useState(0);
useEffect(() => {
console.log('1. 마운트 or someProp 변경 시 실행');
return () => {
console.log('2. 언마운트 or 의존성 변경 전 정리');
};
}, [someProp]);
return <div>{count}</div>;
}
진짜 필수로 알아야 하는 내용들인것 같아요!