에프오씨유는 스타일링이 미쳐 되지 못한 콘텐츠가 스타일 적용이 완료되면서 깜빡거리는 현상이다.
참조된 @Import CSS
CSS 폰트가 로딩이 완료되어, 기본 폰트가 바뀔때 깜빡임 발생
JS로 DOM 조작
화면이 이미 노출된 DOM에서 변경이 일어나면 깜빡임 발생
부모의 state가 변하면서, 자식 컴포넌트를 리랜더링 할때
바뀌는 부분은 리랜더링이 옳다.
하지만 바뀌지 않는 부분은 memo를 활용해 리랜더를 방지하자
useEffect
랜더가 화면에 그려진 이후 비동기적으로 실행
용도 : 페이지의 시각적요소를 바꾸지 않는 무언가를 동기화 할때
이벤트 핸들러 재설정
백그라운드 데이터 Push/Poll
일부 state변경해도 랜더할 필요가 없는 경우
useLayoutEffect
랜더링 후 화면이 업데이트 되기 전에 동기적으로 실행
복잡한 연산을 하게 되면 화면에 그리는 시간이 느려진다.
깜빡거리는 현상을 제거 할 수 있다.
( 깜빡이는 현상을 제공하는 함수를 그리기전에 처리하므로 )
useLayoutEffect 언제 사용 ?
https://webdir.tistory.com/416
https://p-iknow.netlify.app/front-end/fouc-when-using-css-loader-sourceMap