길잃은곰
길을 잃어 떠도는 곰
길잃은곰
전체 방문자
오늘
어제
  • 분류 전체보기 (87)
    • Algorithm (6)
    • HTML, CSS (9)
    • Frontend (1)
    • SW공학 (1)
    • WEB (4)
    • Javascript (29)
    • Typescript (0)
    • React (8)
    • Computer Science (11)
    • NEWS (0)
    • TIL(WIL) (4)
    • ETC (5)

블로그 메뉴

  • ✨깃허브
  • 홈
  • 태그
  • 방명록

인기 글

태그

  • javascript2016
  • element
  • 코테
  • ES8
  • root-element
  • VH
  • REM
  • EM
  • Pixel
  • ES7
  • js2016
  • 자바스크립트
  • %
  • 코드트리
  • VW
  • 연탄
  • ES6
  • JavaScript
  • PX
  • Es5
hELLO · Designed By 정상우.
길잃은곰

길을 잃어 떠도는 곰

React

[ React ] useEffect 와 useLayoutEffect 의 차이점

2023. 1. 13. 07:42

useEffect

useEffect 는 컴포넌트들이 비동기적으로 render 와 paint 된 후 실행된다. 

paint 된 후에 실행되기 때문에, useEffect 내부의 dom 에 영향을 주는 코드가 있을 경우, 사용자 입장에서 깜빡거림을 감지할 수 있다.

useLayoutEffect

useLayoutEffect 는 컴포넌트들이 동기적으로 render 된 후 실행, 그 후 paint 된다.

paint 가 되기전에 실행되기 때문에, dom 조작하는 코드가 있더라도 깜빡임이 없다.

 

결론

두 코드의 차이점은 실행 시점이다. 

useLayoutEffect 는 동기적으로 실행되고, 내부의 코드가 모두 실행된 후 painting 작업을 거치기 때문에 레이아웃이 복잡하면 복잡할 수록 화면을 보기까지 시간이 오래걸린다는 단점이 있어, useEffect 를 사용하는 것을 권장한다고 한다.

하지만 state 가 존재하며, 첫 painting 시에 다르게 랜더링 되야하면 useLayoutEffect 를 쓰는것도 좋음

Reference

 

저작자표시 비영리 동일조건 (새창열림)

'React' 카테고리의 다른 글

[ React ] Portal 이란 무엇인가  (0) 2023.01.20
[ React ] React Hook Form 이란  (0) 2023.01.19
[ React ] state 를 직접 수정하지 않고 setState 를 사용하는 이유  (0) 2023.01.13
[ React ] Lazy Loading 과 Code Splitting  (0) 2023.01.13
React Lifecycle 그리고 Hooks  (0) 2022.10.17
    'React' 카테고리의 다른 글
    • [ React ] Portal 이란 무엇인가
    • [ React ] React Hook Form 이란
    • [ React ] state 를 직접 수정하지 않고 setState 를 사용하는 이유
    • [ React ] Lazy Loading 과 Code Splitting
    길잃은곰
    길잃은곰

    티스토리툴바