Dopasuj narzędzie do rodzaju stanu, zamiast domyślnie sięgać po globalny store. Większość problemów ze "stanem globalnym" to naprawdę niewłaściwe narzędzie do zadania.
Dlaczego to ważne
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)
Najważniejszy wgląd: server state ≠ client state
Dane z API to zdalnych danych, a nie stan, który posiadasz. Umieszczenie go w Redux oznacza ręczne obsługiwanie ładowania, cachowania, ponownego pobierania i unieważniania — boleśnie i podatne na błędy. Biblioteka obsługująca state serwera robi to wszystko:
