useInfiniteQuery quản lý nhiều pages trong 1 query — getNextPageParam quyết định cursor page tiếp theo, fetchNextPage() load thêm khi user scroll tới cuối. useInfiniteQuery là hook chuyên biệt cho infinite scroll và load-more pagination — thay vì fetch 1 page, nó quản lý nhiều pages trong 1 query.
- Cấu hình:
queryFnnhậnpageParam(cursor hoặc page number),getNextPageParamtrả về param cho page tiếp theo (return undefined khi hết data). - Kết quả:
data.pageslà mảng chứa data từng page,data.pageParamslưu params đã dùng. - Gọi
fetchNextPage()khi user scroll tới cuối (dùng IntersectionObserver).
Ví dụ: social feed, product listing, chat history.