PassFront
  1. PassFront
  2. База знаний
  3. Продвинутые темы

Какие проблемы решают 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.

Другие вопросы раздела