Подбирайте инструмент в соответствии с типом состояния, а не автоматически обращайтесь к глобальному store. Большинство проблем с "глобальным состоянием" — это просто неправильный инструмент для задачи.
Почему это важно
text
Local UI state (toggle, input) → useState / useReducer
Shared, low-frequency (theme, user) → Context
Server/API data → React Query / SWR (NOT a global store)
Complex global client state → Zustand / Jotai / Redux Toolkit
URL-shareable state (filters, page) → the URL (search params)
Самый важный вывод: server state ≠ client state
Данные из API — это удалённых данных, а не состояние, которым вы владеете. Помещение этого в Redux означает, что вы вручную обрабатываете загрузку, кеширование, повторное получение данных и инвалидацию — болезненно и чревато ошибками. Библиотека для server state делает всё это:
