간단하게 useEffect와 useLayoutEffect의 차이점에대해 알아봤다.
useEffect는 DOM이 화면에 그려진 후 발생된다.
그래서 만약 아래와 같은 코드가 있을시에 빈값이 잠깐보였다가 값이 추가된걸 볼 수 있다.
...
useEffect(() => {
setName("홍길동");
},[])
...
return (
<div>이름 : ${name}</div> // "이름 : "-> "이름 : 홍길동"
)
...
이때 useLayoutEffect를 사용하면 DOM이 화면에 그러지기 전에 발생됨으로
값이 할당되고 나서 DOM이 그려지기 때문에 빈값을 안 볼 수 있다.
- useEffect의 이펙트는 DOM이 화면에 그려진 이후에 호출된다.
- useLayoutEffect의 이펙트는 DOM이 화면에 그려지기 전에 호출된다.
- 따라서 렌더링할 상태가 이펙트 내에서 초기화되어야 할 경우, 사용자 경험을 위해 useLayoutEffect를 활용하자!
[출처]
useLayoutEffect 훅에 대하여
최근 깃허브 스타 1k를 돌파한 hook-flow 라는 프로젝트가 있습니다. 리액트 훅의 모호한 실행 순서가 보기좋게 정리되어 있어 저도 이미지를 저장해서 보고 있습니다. 😁 그런데 이상하게도, Layout
merrily-code.tistory.com