These two states serve different purposes:isLoading:
isFetching:const { data, isLoading, isFetching } = useQuery({
queryKey: ['posts'],
queryFn: fetchPosts
});
// First load: isLoading = true, isFetching = true
// Background refetch: isLoading = false, isFetching = true
// With cached data: isLoading = false, isFetching = false
This distinction allows you to show different UI states - a full loading screen for initial loads and a subtle indicator for background updates.