리액트에서 컨테이너에 변화가 없더라도 render를 위해서 루트를 반드시 체크해야 했다. 이런 과정이 무의미하다고 느껴서 React 18버전부터는 ReactDOMClient.createRoot를 이용하여 루트를 반환한다.

리액트18에선 Automatic Batching 기능이 생겼다. React 배칭은 렌더링 퍼포먼스를 위하여 여러 state 업데이트를 하나의 업데이트로 그룹화하는 것이다. 배칭을 원치 않을 경우 ReactDOM.flusySync() 를 사용하여 해결할 수 있지만 자주 사용하면 앱의 성능이 크게 저하되고, React API만 사용하는 경우 필요하지 않다. 브라우저 API와 같은 타사 코드와 통합하는데 도움이 된다.

useTransition Hook을 사용하면 상태가 전환되는 중의 상태를 알 수 있습니다. Suspense를 직접 구현할 수 있습니다.