Какие проблемы решают state manager?
Продвинутые темы
State manager решает проблемы: prop drilling, рассинхронизацию общего состояния, сложность отслеживания изменений, разделение логики и UI, предсказуемость обновлений.
Проблемы, которые решает
Prop drilling
Прокидывание props через много уровней компонентов утомительно. Стейт-менеджер даёт прямой доступ:
const user = useSelector((s) => s.user); // без цепочки propsРассинхронизация состояния
Одни данные в разных местах расходятся. Единый источник истины держит всё согласованным:
Изменили корзину → счётчик в хедере, страница, мини-корзина — обновились синхронноСложность отслеживания изменений
При хаотичном изменении состояния трудно понять, что и откуда меняет. Явные действия (actions) делают изменения предсказуемыми и отслеживаемыми.
Разделение логики и UI
Бизнес-логику выносят из компонентов в сторы/редьюсеры — тонкие компоненты, тестируемая логика.
Общее состояние несвязанных компонентов
Хедер и страница делят данные без общего родителя.
Инструменты отладки
DevTools, time-travel, логирование изменений.
Когда реально нужен
- Сложное общее состояние, много источников изменений, крупное приложение.
Когда не нужен
- Локальное →
useState; редкие глобальные → Context; серверные данные → TanStack Query.
Коротко для собеседования
State manager решает: prop drilling (прямой доступ к данным), рассинхронизацию общего состояния (единый источник истины), сложность отслеживания изменений (явные предсказуемые действия), разделение логики и UI (тонкие компоненты), общее состояние несвязанных компонентов, отладку (DevTools). Нужен при сложном общем состоянии; для локального — useState, серверного — TanStack Query.