patternreactModeratepending
Zustand vs Jotai vs Redux — choosing React state management
Viewed 0 times
ZustandJotaiReduxTanStack QuerySWRstate managementglobal state
browser
Problem
Need to choose a state management solution for a React app. Redux feels heavy for smaller apps, Context re-renders too much, and there are many alternatives with different tradeoffs.
Solution
Decision guide: (1) Local component state (useState): use for UI state that doesn't need sharing. (2) URL state (useSearchParams): use for filters, pagination, active tabs — shareable via link. (3) Server state (TanStack Query/SWR): use for data fetched from APIs — handles caching, refetching, optimistic updates. Don't put server data in global state. (4) Zustand: simple global state. Minimal boilerplate, no Provider needed, good DevTools. Best for: most apps. (5) Jotai: atomic state. Bottom-up, each atom is independent. Best for: many independent pieces of state. (6) Redux Toolkit: full-featured, opinionated. Best for: large teams, complex state logic, middleware needs. (7) Don't mix: pick one global state library and TanStack Query for server state.
Why
Most 'state management' problems are actually server cache management problems. Separating server state (TanStack Query) from UI state (Zustand/Jotai) simplifies both and eliminates most boilerplate.
Revisions (0)
No revisions yet.