티스토리 뷰

Automatic Batching

React 에서 Bathing 이란, 여러 state 업데이트를 하나의 업데이트로 그룹화하여 렌더링 성능을 향상시키는 것을 의미합니다.

v18 부터는 새로운 Root API 인 createRoot 를 통해 자동으로 state 업데이트를 배칭 시킵니다. 그로 인해 기본적으로 ReactV18 부터는 렌더링 성능이 향상되었습니다.

예를 들어 기존에는 아래의 로직이 자동으로 배칭되어 여러번 수행하지 않고 렌더링 과정을 다 한 번만 처리하도록 합니다.

function clickHandler() {
	setCount(cnt => cnt + 1)
	setFlag(flag => !flag)
}

useTransition

느린 컴포넌트 성능을 향상 시켜 UX 를 개선할 수 있음.

startTransition 안에 있는 코드 시작을 뒤로 늦춰줘서 입력은 먼저 일어나고 그 이후 컴포넌트 렌더링이 발생하여 시점을 조절하여 성능향상효과를 보여줌.

isPending 은 startTransition 이 처리중 일 때 true 로 변함.

import { useState, useTransition } from 'react'

let [name, setName] = useState('')
let [isPending, startTransition] = useTransition()

return (
  <div>
    <input onChange={(e) => {
      startTransition(() => {
        setName(e.target.value)
      })
    }} />
    {isPending ? '로딩중' : ''}
  </div>

)

 

기본적으로 react v18 부터 기본 성능도 향상되었기 때문에 react 사용시 필수적으로 다가가야할 버전이지 않을까 합니다.

'개발.. > React' 카테고리의 다른 글

useState 동작 방식  (0) 2023.09.15
react router v6 셋팅  (0) 2023.05.21
vite 를 이용한 react + tailwind  (0) 2023.05.12
React 생명주기 (lifecycle)  (0) 2022.01.25
Next.js  (0) 2021.11.15
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함