Deferred Data Loading in React
From the TanStack Router cheat sheet · Data Loading · verified Jul 2026
Deferred Data Loading
Stream data and show content immediately
typescript
import { defer, Await } from '@tanstack/react-router'
export const Route = createFileRoute('/dashboard')({
loader: () => {
return defer({
critical: fetchCriticalData(), // Awaited
deferred: fetchSlowData(), // Streamed
})
},
component: Dashboard,
})
function Dashboard() {
const { critical, deferred } = Route.useLoaderData()
return (
<div>
<h1>{critical.title}</h1>
<Suspense fallback={<div>Loading...</div>}>
<Await promise={deferred}>
{(data) => <div>{data.content}</div>}
</Await>
</Suspense>
</div>
)
}💡 defer() for non-critical data streaming
⚡ Show page immediately with critical data
🔍 Use Suspense for loading states
🎯 Great for improving perceived performance
deferstreamingsuspense