10 tháng 1, 2026 · 10 phút đọc
State Management năm 2026: Zustand, Jotai hay TanStack Query?
So sánh các giải pháp state management hiện đại — khi nào dùng gì và tại sao 'no global state' thường là đáp án đúng.
Landscape state management của React đã thay đổi đáng kể. Redux từng là mặc định, nhưng boilerplate nặng và complexity không phù hợp với hầu hết apps hiện nay. Năm 2026, có nhiều lựa chọn lighter-weight với tradeoffs khác nhau.
Phân loại state trước khi chọn tool
Server state (data từ API): TanStack Query (React Query) là best-in-class. Nó không phải state manager theo nghĩa truyền thống — nó là async state manager với caching, revalidation, optimistic updates. Đừng put server data vào Zustand.
UI state (modal open, sidebar collapsed): thường nên là local component state. Global UI state chỉ cần khi nhiều unrelated components cần cùng value. Context API đủ cho nhiều cases.
Zustand: simple và flexible
Zustand là minimal global state với API gần với React useState. Store là plain object với actions. Không cần Provider wrapper. Subscriptions tự động granular — component chỉ re-render khi slice nó subscribed thay đổi.
Phù hợp với: global UI state (theme, user preferences), multi-step forms, complex local state cần share. devtools middleware cho debugging. persist middleware cho localStorage sync.
Jotai: atomic state model
Jotai dùng atom model — state chia thành atoms nhỏ, components subscribe to specific atoms. Derived atoms (selector) compute từ other atoms. Phù hợp khi state có nhiều derived values và cần fine-grained reactivity.
TanStack Query cho server state
useQuery cho fetching, useMutation cho mutations với optimistic updates. Cache invalidation với queryClient.invalidateQueries. Background refetch, stale-while-revalidate. Nếu đang dùng global state chỉ để store API responses, TanStack Query thay thế hoàn toàn.
Khi nào vẫn cần Redux?
RTK (Redux Toolkit) vẫn phù hợp cho apps enterprise lớn với complex business logic, time-travel debugging, hoặc team đã có Redux expertise. RTK Query là competitive alternative cho TanStack Query với Redux ecosystem integration.