React Query quản lý server state: cache dữ liệu theo query key, gộp (dedupe) request trùng, refetch nền, retry — thay cho việc tự viết loading/error/cache bằng useEffect.
Hai tham số hay bị nhầm:
- staleTime: dữ liệu còn "tươi" trong bao lâu. Trong khoảng này, React Query không refetch dù component mount lại (mặc định 0 = stale ngay lập tức). Tăng staleTime để giảm số request.
- gcTime (trước là cacheTime): giữ dữ liệu trong cache bao lâu sau khi không còn observer nào dùng, rồi mới thu hồi (mặc định 5 phút).
Khi dữ liệu đã stale, React Query tự refetch lúc: mount lại, focus lại cửa sổ, reconnect mạng.