Learning
TanStack Query

Caching működése

staleTime, gcTime, automatikus refetch.

Caching működése

staleTime

Meddig tekintjük az adatot frissnek:

useQuery({
  queryKey: ['users'],
  queryFn: fetchUsers,
  staleTime: 1000 * 60 * 5, // 5 perc
})
  • staleTime = 0: azonnal stale, mount/focus/reconnect esetén refetch.
  • nagyobb érték: kevesebb hálózati kérés.

gcTime

Meddig marad a cache-ben, miután nincs observer:

useQuery({
  queryKey: ['users'],
  queryFn: fetchUsers,
  gcTime: 1000 * 60 * 10, // 10 perc
})

Összehasonlítás:

staleTimegcTime
Jelentésmeddig freshmeddig marad a cache-ben
Ha lejárrefetch-elhettörlődik a cache-ből

Automatikus refetch

Alapból refetch történik:

  • mountkor (ha stale),
  • window focus-kor,
  • reconnect-kor.

Beállítás:

defaultOptions: {
  queries: {
    refetchOnWindowFocus: true,
    refetchOnReconnect: true,
    refetchOnMount: true,
  },
}

📝 Összefoglaló

  • A cache queryKey alapján tárolja az adatot.
  • staleTime – frissesség ideje.
  • gcTime – cache-élettartam használaton kívül.
  • Refetch: mount, focus, reconnect, vagy manuális hívás esetén.

On this page