본문 바로가기
front-end/React

[React]Hook: useLayoutEffect

by -제이리 2022. 12. 5.
728x90
320x100

useLayoutEffect란?

useEffect와 비슷한 이름을 가진 useLayoutEffect는 사용방법은 같지만 실행원리는 다르다.

useEffect(() => {
  // do side effects
  return () => /* cleanup */
}, [dependancy array]);
  
useLayoutEffect(() => {
  // do side effects
  return () => /* cleanup */
}, [dependancy array]);

 

useEffect는 렌더링된 요소가 화면에 그려진 후 비동기적 으로 실행된다.

 

그러나 useLayoutEffect는 렌더링 후 요소가 화면에 그려지기 전에 동기적으로 실행된다. 그래서 데이터를 가져오는 시간이 오래걸린다면 그 시간만큼 사용자는 빈 화면을 보게 된다는 점을 유의해야 한다.

언제 useLayoutEffect를 사용해야 할까?

useEffect를 사용하다보면 경우에 따라 요소가 깜빡이는 경우를 볼 수 있다. 이때 useLayoutEffect를 사용한다면 문제를 해결할 수 있다.

하지만 useEffect를 기본적으로 사용하고 정말 필요한 경우에만 useLayoutEffect를 사용하는것이 좋다.(복잡한 로직이나 데이터 fetch / event handler / state reset 같은 경우엔 useEffect를 사용하자.)  

728x90
320x100

'front-end > React' 카테고리의 다른 글

[Redux]리덕스의 기본개념  (0) 2022.08.24
[React]Hook: customHook  (0) 2022.08.24
[React]Hook: useContext  (0) 2022.08.23
[React] Hook: useReducer  (0) 2022.08.16
[React]Hook: useMemo()와 useCallback() / React.memo()  (0) 2022.08.16

댓글