Server state thuộc về React Query; client UI state thuộc về Zustand/Redux — trộn lẫn dẫn đến duplication.
- RTK Query là data fetching và caching layer tích hợp sẵn trong Redux Toolkit, cạnh tranh trực tiếp với React Query/SWR.
- Ưu điểm so với fetch thủ công: tự động quản lý loading/error/success states (không cần viết 3 cases trong reducer), cache data theo endpoint + params, tự động refetch khi args thay đổi, deduplication (10 components cùng gọi
useGetUserQuery(1)chỉ 1 request). - Cache invalidation qua tag system:
providesTags: ['Post']ở query vàinvalidatesTags: ['Post']ở mutation — khi mutation xong, tất cả queries với tag 'Post' tự động refetch. - So với React Query: RTK Query tích hợp sẵn Redux store (không cần thêm thư viện), nhưng React Query có API linh hoạt hơn và không bắt buộc dùng Redux.
Pitfall: nếu project đã dùng React Query, thêm RTK Query tạo 2 cache layers trùng lặp — chọn một.