Caching, Stale Time & Background Refetching
Configure staleTime and gcTime to control when data is re-fetched from the server.
Caching, Stale Time & Background Refetching is a free React Academy lesson on CoddyKit — lesson 2 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the React Academy learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
Welcome
Fresh vs Stale Data
staleTime
useQuery({
queryKey: ['users'],
queryFn: fetchUsers,
staleTime: 60_000, // fresh for 60 seconds
})Setting staleTime for Static Data
// Effectively never stale — reload only on explicit invalidation
useQuery({ queryKey: ['countries'], queryFn: fetchCountries,
staleTime: Infinity })gcTime (Garbage Collection)
useQuery({
queryKey: ['products'],
queryFn: fetchProducts,
gcTime: 10 * 60 * 1000, // keep in memory for 10 minutes
})staleTime vs gcTime
Background Refetching Indicators
const { data, isLoading, isFetching } = useQuery({ /* ... */ });
return (
<>
{isLoading ? <Spinner /> : <DataView data={data} />}
{isFetching && !isLoading && <RefreshIndicator />}
</>
);refetchOnWindowFocus
useQuery({
queryKey: ['settings'],
queryFn: fetchSettings,
refetchOnWindowFocus: false,
})refetchInterval for Polling
useQuery({
queryKey: ['liveStats'],
queryFn: fetchStats,
refetchInterval: 5000, // every 5 seconds
})Placeholder Data
import { keepPreviousData } from '@tanstack/react-query';
useQuery({
queryKey: ['posts', page],
queryFn: () => fetchPage(page),
placeholderData: keepPreviousData,
})Quick Check
Recap
Up Next
Frequently asked questions
Is the “Caching, Stale Time & Background Refetching” lesson free?
Yes — the full text of “Caching, Stale Time & Background Refetching” is free to read here on the web, and the React Academy course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the React Academy course, upgrade to CoddyKit PRO.
What will I learn in “Caching, Stale Time & Background Refetching”?
Configure staleTime and gcTime to control when data is re-fetched from the server. You practise React Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start React Academy?
No prior experience is required. React Academy on CoddyKit is structured for beginners through advanced learners; this is — lesson 2 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “Caching, Stale Time & Background Refetching” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this React Academy lesson?
Yes. Every React Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- Setting Up React Query & QueryClient
- Caching, Stale Time & Background Refetching
- Mutations with useMutation
- Infinite Scroll & Pagination with useInfiniteQuery