Получить доступ

Как управлять состоянием в React-приложении — Context, Redux, Zustand, серверное состояние?

JuniorReact
Ещё спрашивают так:
  • Когда нужен Redux?
  • Чем серверное состояние отличается от клиентского?
Коротко

Сначала — локальное состояние и подъём к общему предку. Context — передать редко меняющиеся данные глубоко (тема, пользователь, язык) без прокидывания props. Глобальное хранилище (Redux Toolkit, Zustand) — сложное клиентское состояние, которое меняют многие компоненты. Серверное состояние (данные из API) — отдельная задача: TanStack Query, RTK Query кэшируют, обновляют и дедуплицируют запросы.

  • Context перерисовывает всех потребителей при изменении значения
  • Значительная часть «глобального состояния» — на деле кэш серверных данных
  • Состояние формы — локально или react-hook-form

А ещё Состояние в URL (фильтры, страница) — им можно поделиться ссылкой

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

Виды состояния:

  • локальное UI — открыт ли попап, текст в поле: useState;
  • общее клиентское — корзина, настройки: подъём, Context или стор;
  • серверное — копия данных бэкенда, которая устаревает: библиотека запросов с кэшем и инвалидацией;
  • URL — фильтры, сортировка, номер страницы.

Context — механизм передачи, а не хранилище: изменение значения перерисовывает всех, кто его читает. Для часто меняющихся данных — разделять контексты или брать стор с подписками на части состояния.

Redux Toolkit — предсказуемые обновления через действия и редьюсеры, DevTools с историей; оправдан в больших приложениях с командой. Zustand — минималистичный стор с селекторами.

TanStack Query снимает основную боль: загрузка, ошибки, повторы, кэш, фоновое обновление, отмена — без ручных useEffect.

Что хотят услышать

  • Разделение видов состояния.
  • Когда хватает локального и Context.
  • Роль сторов и библиотек серверного состояния.

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем