useEffect 함수는 React component가 렌더링 될 때마다 특정 작업을 실행해줄 수 있는 Hook입니다.
useEffect를 이해하기 위해서 class형에서 사용할 수 있었던 React lifecycle을 보면 더 쉽게 이해할 수 있습니다. component가 mount 됐을 때 사용하거나 unmount, update등 함수의 이름이 직관적으로 작성되었습니다.
기본 useEffect의 형태는
useEffect( () => { function }, [deps]);
첫 번째엔 함수, 두 번째엔 배열(dependency)
useEffect(() => { //componentDidMount, componentDidUpdate 역할을 합니다. (1:1의 대응은 아닙니다)
function()
return () => { //componentWillUnmount 역할 cleanup함수
function()
}
}, [] //deps, 의존성 배열이라고함);
useEffect(() => {
console.log('mount될 때 첫 실행');
}, []); //꼭 빈배열을 넣어줘야한다. componetDidMount의 역할
useEffect(() => {
console.log('리렌더링 될 때 마다 실행');
}); //빈 배열을 넣어주지않으면 리렌더링 될 때마다 실행됨.
useEffect(() => {
console.log('update될 때 실행');
console.log(count);
},[count]);
useEffect(() => {
console.log('컴포넌트 mount!');
return () => {
console.log('컴포넌트 unmount!');
}
}, []);