Web / TanStack Interview Questions
How do you prefetch data in TanStack Query to speed up navigation?
Prefetching loads data into the cache before it is needed — on hover, on route entry, or alongside the current page. When the user navigates, data is already cached and renders instantly.
<script setup lang="ts"> import { useQueryClient } from "@tanstack/vue-query" import { ref, watchEffect } from "vue" const qc = useQueryClient() // Prefetch on hover async function prefetchPost(id:number){ await qc.prefetchQuery({ queryKey: ["post",id], queryFn: ()=>fetchPost(id), staleTime: 1000*60, // skip if cached < 1 min }) } // Prefetch next page while user reads current const page=ref(1) watchEffect(()=>{ qc.prefetchQuery({ queryKey: ["posts",page.value+1], queryFn: ()=>fetchPosts(page.value+1), }) }) </script> <template> <RouterLink v-for="p in data?.items" :key="p.id" :to="`/posts/${p.id}`" @mouseenter="prefetchPost(p.id)">{{ p.title }}</RouterLink> </template>
More Related questions...