RTK Query là gì? Lợi ích so với cách fetch data thủ công?

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.

Xem toàn bộ State Management cùng filter theo level & chủ đề con.

Mở danh sách State Management