useEffect 와 useLayoutEffect 차이점
useEffect와 useLayoutEffect 둘의 사용법은 아래와 같다.
useLayoutEffect
1 2 3 4 5 6  | useLayoutEffect(() => {   effect   return () => {     cleanup   }; }, [input])  | cs | 
useEffect
1 2 3 4 5 6  | useEffect(() => {   effect   return () => {     cleanup   } }, [input])  | cs | 
useEffect 와 useLayoutEffect을 확인해보면 동일한 형태로 사용된다.
하지만 둘의 차이점은 바로 실행 시점의 차이이다.
useEffect 동작 순서
1. DOM 렌더링(레이아웃 배치 등)
2. useEffect 내부 로직 수행 및 state 값 업데이트
3. 업데이트 된 state 값으로 DOM 리렌더링
useEffect는 비동기적으로 실행된다.
useLayoutEffect 동작 순서
1. useLayoutEffect 내부 로직 수행 및 state 값 업데이트
2. 업데이트 된 state 값으로 DOM 렌더링
useLayoutEffect는 동기적으로 실행된다.
댓글
댓글 쓰기