useEffect
는 컴포넌트가 렌더링 될 때마다 작업을 실행할 수 있도록 하는 hook이다
컴포넌트가 mount(처음 나타났을 때)/unmount/update 됐을 때 각각 특정 작업을 처리할 수 있다
이는 클래스형 컴포넌트 라이프 사이클에서 볼 수 있는 componentDidMount
와 componentDidUpdate
를 합쳐놓은 것으로 봐도 무방하다(?)
useEffect
의 effect는 동작을 하고난 후 일어나는 부수적인 효과를 의미한다
useEffect(() => {
console.log("렌더링 완료: componentDidMount + componentDidUpdate");
});
useEffect(() => {
console.log("마운트 될 때만 실행");
}, []);
useEffect(() => {
console.log(target);
}, [target]);
useEffect(() => {
console.log("effect");
return () => {
console.log("cleanup");
}
});
useLayoutEffect의 동작은 useEffect와 동일하지만 차이가 있다
useEffect
useLayoutEffect
둘의 가장 큰 차이는 렌더링 시점에 있다