Web / TanStack Interview Questions
What are route loaders in TanStack Router and how do they integrate with TanStack Query?
Route loaders run before the component renders. Using queryClient.ensureQueryData() inside a loader pre-populates the Query cache so the component renders synchronously with no loading spinner.
import { createRoute } from "@tanstack/vue-router" import { queryClient } from "../queryClient" import { userKeys } from "../queries/userKeys" export const userDetailRoute = createRoute({ getParentRoute: ()=>rootRoute, path: "/users/$userId", component: UserDetailPage, loader: async ({ params })=>{ await queryClient.ensureQueryData({ queryKey: userKeys.detail(Number(params.userId)), queryFn: ()=>fetchUser(Number(params.userId)), }) // Component will find data already in cache â renders instantly }, }) // In UserDetailPage.vue import { useParams } from "@tanstack/vue-router" import { useQuery } from "@tanstack/vue-query" const { userId } = useParams({ from:"/users/$userId" }) const { data:user } = useQuery({ queryKey: userKeys.detail(Number(userId)), queryFn: ()=>fetchUser(Number(userId)), })
More Related questions...