Bye Bye Redux, Hello TanStack Query: Quản lý Profile người dùng dễ như ăn kẹo!
Lê Lân
0
Quản Lý State Toàn Cầu Trong React Với TanStack Query: Giải Pháp Thay Thế Redux & Zustand
Mở Đầu
Trong thế giới React, việc quản lý state toàn cầu luôn là một thử thách khó nhằn. Trước đây, Redux là lựa chọn hàng đầu và sau này xuất hiện những thư viện nhẹ hơn như Zustand, tuy nhiên trong nhiều trường hợp, đặc biệt khi dữ liệu đến trực tiếp từ server, bạn hoàn toàn không cần một thư viện quản lý state phức tạp.
Bài viết này sẽ cùng bạn khám phá một ví dụ thực tế: giữ dữ liệu profile người dùng sẵn có trên toàn bộ ứng dụng frontend. Ta sẽ thấy rằng TanStack Query có thể làm điều này một cách dễ dàng, với đầy đủ tính năng cache, invalidate và persistence, mà không cần sử dụng Redux hay Zustand.
🧩 Vấn Đề Cần Giải Quyết
Bạn có một API endpoint /api/me trả về dữ liệu profile của người dùng đã đăng nhập. Bạn muốn dữ liệu này:
Có thể truy cập dễ dàng ở nhiều nơi trong ứng dụng như thanh điều hướng (navbar), trang cài đặt, v.v.
Được lưu trong bộ nhớ tạm mà không cần phải gọi lại API mỗi khi render.
Chỉ làm mới khi thật sự cần thiết (ví dụ sau khi cập nhật profile).
Xóa sạch dữ liệu khi người dùng đăng xuất.
Truyền thống, chúng ta sẽ:
Gọi API lấy profile một lần.
Lưu dữ liệu global state qua Redux hoặc Zustand.
Cập nhật/xóa dữ liệu thủ công khi có thay đổi.
Với TanStack Query, tất cả bước trên đều được thực hiện tự động và hiệu quả.