Abbina lo strumento al tipo di state, piuttosto che ricorrere per default a un store globale. La maggior parte dei problemi di "global state" sono in realtà l'uso dello strumento sbagliato.
Perché è importante
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)
L'insight più importante: server state ≠ client state
I dati provenienti da un'API sono una di dati remoti, non uno state che possiedi. Metterli in Redux significa gestire manualmente il caricamento, il caching, il refetching e l'invalidazione — doloroso e soggetto a bug. Una libreria di server-state fa tutto questo:
