리액트에서 컨테이너에 변화가 없더라도 render를 위해서 루트를 반드시 체크해야 했다. 이런 과정이 무의미하다고 느껴서 React 18버전부터는 ReactDOMClient.createRoot
를 이용하여 루트를 반환한다.
리액트18에선 Automatic Batching 기능이 생겼다. React 배칭은 렌더링 퍼포먼스를 위하여 여러 state 업데이트를 하나의 업데이트로 그룹화하는 것이다. 배칭을 원치 않을 경우 ReactDOM.flusySync()
를 사용하여 해결할 수 있지만 자주 사용하면 앱의 성능이 크게 저하되고, React API만 사용하는 경우 필요하지 않다. 브라우저 API와 같은 타사 코드와 통합하는데 도움이 된다.
useTransition
Hook을 사용하면 상태가 전환되는 중의 상태를 알 수 있습니다. Suspense를 직접 구현할 수 있습니다.