flushsync

들어가기 전

Batching 개념

React 18에서 많은 상태를 업데이트 하여도 단 한번만 리렌더링 됨

console.log("Hello react") // 한번만 호출
function handleClick() {
  setIndex(3) // 리렌더링 안함
  setList([]) // 리렌더링 안함
  // 리렌더링 함
}

flushsync

개념

위의 코드에서 setIndex 이후 setList가 실행되기 전에 index 값을 DOM에 리렌더링 시키고 싶을 때 사용

예제

function handleClick() {
  flushSync(() => {
    setIndex(3)
  })
  setList([])
}