Есть ли библиотека для роутинга state manager?
Продвинутые темы
Да, есть библиотеки, интегрирующие роутинг с управлением состоянием: например, connected-react-router и redux-first-history для Redux, TanStack Router с встроенным состоянием, а также встроенная синхронизация в некоторых менеджерах.
Библиотеки роутинга + состояние
Для Redux
- redux-first-history (современная) — синхронизирует историю роутера с Redux store: навигация становится частью состояния, доступна в редьюсерах, попадает в DevTools/time-travel.
- connected-react-router (устаревшая) — предшественник.
// навигация через dispatch, состояние роутинга в store
dispatch(push('/dashboard'));TanStack Router
Типобезопасный роутер со встроенным управлением состоянием маршрута, поиска (search params как состояние), кешированием.
React Router
Сам по себе управляет состоянием навигации; с v6.4+ есть загрузчики данных (loaders/actions), приближающие его к управлению состоянием данных маршрута.
Зачем интегрировать
- URL как состояние — фильтры, пагинация, вкладки в URL (шарятся, работает back/forward).
- Единый источник — навигация в том же store, что и остальное состояние.
- Time-travel — навигация в истории Redux DevTools.
Обычный подход
Часто роутинг и стейт-менеджер держат раздельно: React Router для навигации, стейт-менеджер для данных, а URL-состояние (фильтры) — в query-параметрах через хуки роутера (useSearchParams).
Коротко для собеседования
Да: redux-first-history/connected-react-router синхронизируют роутинг с Redux (навигация в store, time-travel), TanStack Router имеет встроенное управление состоянием маршрута и search params, React Router v6.4+ — загрузчики данных. Часто, впрочем, роутинг и стейт держат раздельно, а URL-состояние (фильтры) — в query-параметрах.