useSuspenseQuery tích hợp React Suspense — thay vì return isLoading/isError, nó throw Promise (cho Suspense boundary bắt) hoặc throw Error (cho Error Boundary bắt).
- Kết quả:
dataluôn defined (TypeScript happy), không cần if/else cho loading/error states. - Code gọn hơn: component chỉ chứa happy path.
- Suspense boundary ở parent xử lý loading, ErrorBoundary xử lý error.
- Khi nào dùng: project đã adopt Suspense pattern, muốn tách loading UI khỏi component logic.
- Khi nào KHÔNG dùng: cần kiểm soát loading state chi tiết, cần show partial data trong khi fetch.
- Lưu ý: nhiều useSuspenseQuery trong 1 component sẽ waterfall — dùng
useSuspenseQueriesđể parallel.