0Pricing
React Academy · Ders

Önbelleğe Alma, Eski Veri Süresi ve Arka Planda Yeniden Getirme

Verilerin sunucudan ne zaman yeniden getirileceğini denetlemek için staleTime ve gcTime değerlerini yapılandırın.

Önbelleğe Alma, Eski Veri Süresi ve Arka Planda Yeniden Getirme, CoddyKit'te ücretsiz bir React Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, React Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. React Academy kursu toplamda 4 dersten oluşur.

Hoş Geldiniz

Bu derste staleTime ve gcTime'i yapılandırarak React Query'nin verileri ne kadar süre güncel tutacağını ve önbelleğe alınan verileri bellekte ne kadar süre saklayacağını denetleyeceksiniz.

Güncel ve Eski Veriler

React Query, önbelleğe alınan verilerin 'güncel' veya 'eski' olup olmadığını izler. Güncel veriler ağ isteği yapılmadan hemen döndürülür. Eski veriler de hemen döndürülür, ancak bunları güncellemek için arka planda yeniden alma işlemi başlatılır.

staleTime

staleTime, verilerin kaç milisaniye boyunca güncel kalacağını belirler. Varsayılan değer 0'dır (veriler hemen eski kabul edilir). Bunu 60000 olarak ayarlarsanız son bir dakika içinde alınan veriler arka planda yeniden alınmadan döndürülür.
useQuery({
  queryKey: ['users'],
  queryFn: fetchUsers,
  staleTime: 60_000, // fresh for 60 seconds
})

Statik Veriler için staleTime Ayarlama

Nadiren değişen veriler (ör. ülke listesi ve yapılandırma seçenekleri) için yüksek bir staleTime ayarlayın. Canlı veriler (ör. hisse senedi fiyatları) için varsayılan 0 değerini koruyun ve yoklamayı etkinleştirin.
// Effectively never stale — reload only on explicit invalidation
useQuery({ queryKey: ['countries'], queryFn: fetchCountries,
  staleTime: Infinity })

gcTime (Çöp Toplama)

gcTime (eski adıyla cacheTime), KULLANILMAYAN önbelleğe alınmış verilerin çöp toplanmadan önce bellekte ne kadar süre kalacağını belirler. Varsayılan değer 5 dakikadır. gcTime süresi dolduktan sonra yeni bir abone bağlanırsa React Query verileri hemen yeniden alabilir.
useQuery({
  queryKey: ['products'],
  queryFn: fetchProducts,
  gcTime: 10 * 60 * 1000, // keep in memory for 10 minutes
})

staleTime ve gcTime Karşılaştırması

staleTime, ne zaman yeniden veri alınacağını (verilerin güncelliğini) denetler. gcTime, önbelleğe alınan verilerin bellekten ne zaman atılacağını denetler. staleTime <= gcTime, yaygın olarak kullanılan ilişkidir.

Arka Planda Yeniden Veri Alma Göstergeleri

React Query arka planda yeniden veri aldığında, `isLoading` false olsa bile `isFetching` true olur (veriler zaten önbelleğe alınmıştır). İnce bir dönen gösterge göstermek için isFetching'i kullanın.
const { data, isLoading, isFetching } = useQuery({ /* ... */ });

return (
  <>
    {isLoading ? <Spinner /> : <DataView data={data} />}
    {isFetching && !isLoading && <RefreshIndicator />}
  </>
);

refetchOnWindowFocus

Varsayılan olarak React Query, kullanıcı sekmeye geri döndüğünde eski sorguları yeniden alır. Nadiren güncellenen veriler için bunu devre dışı bırakın.
useQuery({
  queryKey: ['settings'],
  queryFn: fetchSettings,
  refetchOnWindowFocus: false,
})

Yoklama için refetchInterval

Bir sorguyu zamanlayıcıyla otomatik olarak yoklamak için `refetchInterval` ayarlayın. Canlı veri panoları için kullanışlıdır.
useQuery({
  queryKey: ['liveStats'],
  queryFn: fetchStats,
  refetchInterval: 5000, // every 5 seconds
})

Yer Tutucu Veriler

Yeniden veri alma işlemi sürerken önceki verileri göstermek ve düzen kaymalarını önlemek için `placeholderData` kullanın. keepPreviousData seçeneği sayfalandırmayı kolaylaştırır.
import { keepPreviousData } from '@tanstack/react-query';

useQuery({
  queryKey: ['posts', page],
  queryFn: () => fetchPage(page),
  placeholderData: keepPreviousData,
})

Hızlı Kontrol

Bir sorguda staleTime: Infinity ayarlamak ne sağlar?

Özet

staleTime güncelliği, yani verilerin arka planda yeniden veri alma işlemini tetiklemesinden önce ne kadar süre geçeceğini denetler. gcTime belleği, kullanılmayan verilerin önbellekte ne kadar süre kalacağını denetler. isFetching, arka planda yeniden veri alma işlemlerini bildirir. Akıcı sayfalandırma için placeholderData kullanın.

Sıradaki

Sıradaki ders: **useMutation ile Değişiklikler** — API'lere veri gönderecek ve başarılı işlemlerden sonra sorguları geçersiz kılacaksınız.

Sıkça Sorulan Sorular

“Önbelleğe Alma, Eski Veri Süresi ve Arka Planda Yeniden Getirme” dersi ücretsiz mi?

Evet — “Önbelleğe Alma, Eski Veri Süresi ve Arka Planda Yeniden Getirme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve React Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. React Academy kursu toplamda 4 dersten oluşur.

“Önbelleğe Alma, Eski Veri Süresi ve Arka Planda Yeniden Getirme” dersinde ne öğreneceğim?

Verilerin sunucudan ne zaman yeniden getirileceğini denetlemek için staleTime ve gcTime değerlerini yapılandırın. React Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

React Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te React Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Önbelleğe Alma, Eski Veri Süresi ve Arka Planda Yeniden Getirme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu React Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her React Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. React Query ve QueryClient Kurulumu
  2. Önbelleğe Alma, Eski Veri Süresi ve Arka Planda Yeniden Getirme
  3. useMutation ile Değişiklikler
  4. useInfiniteQuery ile Sonsuz Kaydırma ve Sayfalama
← React Academy Sayfasına Dön