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:
| staleTime | gcTime | |
|---|---|---|
| Jelentés | meddig fresh | meddig marad a cache-ben |
| Ha lejár | refetch-elhet | tö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
queryKeyalapjá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.