[CS-yum][React] 3회차(3) - useLayoutEffect

장문용·2023년 10월 20일
1

React

목록 보기
5/5

🧑🏻‍💻  useLayoutEffect


useLayoutEffect는 브라우저가 화면을 다시 채우기 전에 실행되는 버전의 useEffect이다.

🍪 useLayoutEffect 문법

useLayoutEffect(setup, dependencies?)

🧑🏻‍💻 참고하기


🍪 주의사항

  • 컴포넌트의 최상위 레벨 또는 자체 훅에서만 호출 가능 (React 훅)
  • 기타 주의 사항은 useEffect랑 같다.
  • useLayoutEffect 내부의 코드와 여기에서 예약된 모든 state 업데이트는 브라우저가 화면을 다시 그리는 것을 차단한다. 과도하게 사용하면 앱이 느려지기 때문에 가급적이면 useEffect를 사용하자
  • useLayoutEffect의 목적은 컴포넌트가 렌더링에 레이아웃 정보를 사용하도록 하는 것이고 레이아웃 정보가 없는 서버에서는 돌아가지 않는다.

🧑🏻‍💻 활용 및 생각할 거리


🍪 브라우저에서 화면을 다시 그리기 전 레이아웃 측정하기 (화면에서의 위치나 크기를 파악해야 하는 경우)

  • ex) 툴팁 (화면 위치에 따라서 툴팁이 아래에 나올 것인지 위에 나올 것인지 판단)
  • 사용자가 툴팁이 화면에서 움직이는 것을 보지 않도록 하려면, useLayoutEffect를 사용하여 레이아웃 측정을 수행한다. 이 Hook 내부의 코드는 레이아웃을 계산하기 전에 실행되므로 사용자는 변경된 내용이 화면에 나타나기 전에 렌더링 업데이트를 적용할 수 있다.

참고 https://react-ko.dev/reference/react/useLayoutEffect

profile
FE 개발자

0개의 댓글