Bốn lựa chọn giải quyết các nhu cầu khác nhau, đừng mặc định reach for Redux.
- Context API: không phải state manager, chỉ là cơ chế truyền value tránh prop drilling (theme, locale, user đã đăng nhập). Mọi consumer re-render khi value đổi → không hợp cho state cập nhật thường xuyên.
- Zustand: store nhỏ ngoài React, chọn slice qua selector → chỉ component dùng slice đó re-render. Ít boilerplate, API
create()cực gọn. Hợp cho state client toàn cục vừa và nhỏ. - Jotai: mô hình atom bottom-up, từng mẩu state độc lập, compose lại. Hợp khi state phân mảnh, nhiều mảnh nhỏ phụ thuộc lẫn nhau (derived atom).
- Redux Toolkit (RTK): top-down, một store lớn, có DevTools time-travel, middleware, RTK Query. Hợp app lớn cần audit trail, team đông cần convention chặt.
Lưu ý: phần lớn "global state" thật ra là server state (data từ API) — nên dùng TanStack Query / RTK Query thay vì nhồi vào Redux/Zustand. Chỉ giữ client state thật (UI, form draft) trong các store trên.