> Что такое batching в React и зачем он нужен (React)
Уровень: junior · Роль: frontend · Категория: Технические вопросы
Компании: Альфа-банк, Kvando Technologies, Sminex, Kodix, Сфера
Стек: React
> Пример ответа
Batching в React - это механизм группировки нескольких обновлений состояния в одно повторное отображение (re-render) компонента. Без batching каждый вызов setState (или useState сеттера) вызывал бы отдельный рендер, что может привести к лишним перерисовкам и снижению производительности.
Зачем нужен batching:
-
Оптимизация производительности - уменьшает количество рендеров, объединяя изменения.
-
Предсказуемость - компонент обновляется один раз после обработки всех изменений, а не частично.
-
Согласованность данных - предотвращает промежуточные состояния, когда часть стейта уже обновлена, а часть - нет.
Пример:
JSXfunction Counter() {const [count, setCount] = useState(0);const [flag, setFlag] = useState(false);function handleClick() {setCount(c => c + 1); // не вызывает рендерsetFlag(f => !f); // не вызывает рендер// React выполнит оба обновления за один рендер}return <button onClick={handleClick}>Click</button>;}
Важно: До React 18 batching работал только внутри обработчиков событий React. В React 18 batching включен по умолчанию для всех обновлений (включая промисы, setTimeout, асинхронные колбэки). Если нужно принудительно обновить синхронно (например, для чтения DOM), используйте flushSync из react-dom.
> Похожие задачи по frontend
Как правильно указывать зависимости в useEffect в React
Для чего используется React и почему его выбирают
Как правильно использовать мемоизацию в React
Как работает useEffect хук в React
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью