Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про React: setstate, batching

Асинхронный или синхронный setState в React?

Вопрос проверяет понимание того, как React обрабатывает обновления состояния и оптимизирует рендеры.

Короткий ответ

setState в React не является строго синхронным или асинхронным. React может объединять несколько обновлений состояния для оптимизации. Обновление состояния происходит не сразу, а планируется. Поэтому сразу после вызова setState новое значение может быть недоступно. Это поведение зависит от режима выполнения и окружения.

Длинный ответ

Часто setState называют асинхронным, но это упрощение не совсем точное.

Как React обрабатывает setState

При вызове setState или setCount:

  • React планирует обновление

  • несколько обновлений могут быть объединены

  • реальный рендер выполняется позже

Пример:

setCount(count + 1);
console.log(count); // старое значение

Это происходит потому, что React ещё не применил обновление.

Батчинг обновлений

React группирует обновления:

  • внутри обработчиков событий

  • внутри эффектов

  • в асинхронном коде (в современных версиях)

Это уменьшает количество рендеров и повышает производительность.

Функциональная форма setState

Чтобы работать с актуальным состоянием, используют функциональную форму:

setCount(prev => prev + 1);

React гарантирует, что prev — последнее значение.

Важный вывод

setState:

  • не блокирует выполнение кода

  • не гарантирует немедленное обновление

  • подчиняется стратегии оптимизации React

Вывод

setState нельзя строго назвать ни синхронным, ни асинхронным. Это запланированное обновление, которое React выполняет в удобный для себя момент.

Уровень

  • Рейтинг:

    5

  • Сложность:

    6

Навыки

  • React

    React

Ключевые слова

#setstate

#batching

Подпишись на React Developer в телеграм