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는 동기적으로 실행된다.
댓글
댓글 쓰기