Какие менеджеры состояния важны на практике и как их применять?
Продвинутые темы
Важные менеджеры состояния: Redux (Toolkit), Zustand, MobX, Context API для клиентского состояния и TanStack Query/SWR для серверного. Выбор — по сложности и типу данных.
Клиентское состояние
useState / useReducer
Локальное состояние компонента; useReducer — для сложной логики.
Context API
Передача данных без prop drilling; хорош для редко меняющихся данных (тема, локаль). При частых изменениях вызывает лишние ре-рендеры.
Redux Toolkit
Предсказуемое централизованное состояние, строгий поток, DevTools. Для крупных приложений.
const slice = createSlice({ name, initialState, reducers });Zustand
Минималистичный store на хуках, мало кода. Для среднего размера.
const useStore = create((set) => ({ count: 0, inc: () => set((s) => ({ count: s.count + 1 })) }));MobX
Реактивность через observables, автоматическое обновление UI.
Серверное состояние
TanStack Query, SWR — кеширование, рефетч, синхронизация с бэкендом. Отдельная категория, не для клиентского состояния.
Как выбирать
- Локальное → useState/useReducer.
- Редко меняющееся общее → Context.
- Крупное сложное → Redux Toolkit.
- Простой глобальный стор → Zustand.
- Данные с сервера → TanStack Query/SWR.
Коротко для собеседования
Клиентское состояние: useState/useReducer (локальное), Context (редко меняющееся общее), Redux Toolkit (крупное), Zustand (минимализм), MobX (реактивность). Серверное — TanStack Query/SWR (кеш, синхронизация). Серверное и клиентское состояние разделяют.