useSWR Kancası: Veri Alma, Yükleme ve Hata Durumları
Özel veri alma işlevleriyle useSWR kullanıp yükleme, hata ve başarı durumlarını bildirimsel biçimde yönetin
useSWR Kancası: Veri Alma, Yükleme ve Hata Durumları, 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.
useSWR İmzası
useSWR(key, fetcher, options), temel kancadır. key, önbellek anahtarıdır (genellikle bir URL dizesi); fetcher, veri döndüren asenkron işlevdir ve options, isteğe bağlı bir yapılandırma nesnesidir.
Kanca; data, error, isLoading, isValidating ve mutate işlevini içeren bir nesne döndürür.
key Parametresi
key, bir URL dizesi, [url, params] dizisi veya null olabilir. Dize anahtarları basit GET isteklerine karşılık gelir. Dizi anahtarları, userId veya filtreler gibi değişkenleri önbellek kimliğine yerleştirmenize olanak tanır.
Null göndermek isteği tamamen devre dışı bırakır; bu, gerekli veriler henüz kullanılabilir olmadığında koşullu veri getirme için yararlıdır.
fetcher İşlevi
fetcher, anahtarı (veya dizi anahtarını bağımsız değişkenler olarak açılmış biçimde) alır ve bir Promise döndürmelidir. Çözümlenen değer data olur. fetcher bir hata fırlatırsa error özelliği ayarlanır.
Örnek: (url) => fetch(url).then(r => { if (!r.ok) throw new Error(r.status); return r.json(); }).
data ve error Durumları
data, ilk yükleme sırasında undefined olur ve başarılı işlemden sonra çözümlenen fetcher değerine eşitlenir. fetcher bir hata fırlatmadığı sürece error undefined olur; hata fırlatırsa error, fırlatılan hata nesnesini içerir.
Bir hata mesajı oluşturmak için if (error) ve bir yükleme iskeleti oluşturmak için if (!data) denetimini kullanın; böylece anlaşılır yedek kullanıcı arayüzleri sağlayabilirsiniz.
isLoading ve isValidating Karşılaştırması
isLoading yalnızca önbelleğe alınmış veri olmadığında ve bir istek sürerken, yani bu anahtarın ilk yüklemesinde true değerindedir. isValidating, önbelleğe alınmış veri zaten mevcutken gerçekleşen arka plan yeniden doğrulamaları da dahil olmak üzere, herhangi bir istek sürdüğü zaman true değerindedir.
İskelet ekranları için isLoading, arka plan yenilemesini gösteren hafif bir yükleme göstergesi için isValidating kullanın.
Global SWRConfig
SWRConfig, alt ağacındaki tüm useSWR çağrıları için varsayılan veri getirme işlevini, dedupingInterval, refreshInterval, onError işleyicisini ve diğer seçenekleri tanımlamanıza olanak tanır. Bu, seçenekleri her kancada tekrarlamak yerine yapılandırmayı merkezileştirir.
Uygulamanızın farklı bölümleri için farklı varsayılanlara sahip olmak üzere birden çok SWRConfig sağlayıcısını iç içe yerleştirin.
Null Anahtarla Koşullu Veri Getirme
İsteği atlamak için anahtar olarak null gönderin: useSWR(isLoggedIn ? '/api/user' : null, fetcher). Anahtar null olmayan bir değere dönüşene kadar SWR veri getirmez.
Bu yaklaşım, React Query'deki skip seçeneğinden daha temizdir. Anahtarın null değerinden bir dizeye geçmesi, ilk veri getirme işlemini otomatik olarak tetikler.
Bağımlı Veri Getirme
Bağımlı istekler için SWR kancalarını zincirleyin: const { data: user } = useSWR('/api/me', fetcher) then const { data: orders } = useSWR(user ? '/api/orders/' + user.id : null, fetcher). İkinci kanca, birincinin çözülmesini bekler.
Bu model, useEffect zincirlerini önler ve veri bağımlılıklarını bildirimsel ve okunabilir tutar.
İstek Tekilleştirme Uygulamada
Bir Header bileşeni ile bir Sidebar bileşeni aynı anda useSWR('/api/user', fetcher) çağrısı yaparsa SWR yalnızca bir istek gönderir ve sonucu paylaşır. Veri veya hata güncellendiğinde her iki bileşen de birlikte yeniden oluşturulur.
Bu tekilleştirme, ek yapılandırma gerektirmeden varsayılan olarak 2000 ms olan dedupingInterval aralığı içinde otomatik olarak gerçekleşir.
Yararlı SWR Seçenekleri
refreshInterval: 5000, her 5 saniyede bir sorgulama yapar. refreshWhenHidden: false, sekme görünür olmadığında sorgulamayı durdurur. shouldRetryOnError: false, otomatik yeniden denemeyi devre dışı bırakır. revalidateOnFocus: false, odaklanma tetiklemeli yeniden doğrulamayı devre dışı bırakır.
Seçenekleri veri güncelliği gereksinimlerinize uyacak şekilde birleştirin: gösterge panoları genellikle refreshInterval kullanırken statik içerik revalidateOnFocus: false değerini ayarlar.
useSWR ile Sayfalama
Sayfalı veriler için sayfa numarasını anahtara dahil edin: useSWR(['/api/items', page], fetcher). Sayfayı değiştirmek, önceki sayfaları önbelleğe alırken o sayfa için yeni bir veri getirme işlemi başlatır.
SWR ayrıca, sayfa dizini ve önceki sayfa verilerine göre anahtarlar oluşturan bir getKey işleviyle imleç tabanlı veya sonsuz kaydırma modelleri için useSWRInfinite sağlar.
SWR Anahtarı Null Olduğunda
useSWR'a anahtar olarak null gönderdiğinizde ne olur?
Ders Özeti
useSWR(key, fetcher), data, error, isLoading ve isValidating değerlerini döndürür. Null anahtarlar, koşullu ve bağımlı istekler için veri getirmeyi devre dışı bırakır. isLoading ilk yüklemeyi, isValidating ise devam eden herhangi bir isteği belirtir. SWRConfig varsayılanları merkezileştirir ve bileşenler arasındaki istek tekilleştirme işlemi otomatik olarak yapılır.
refreshInterval, revalidateOnFocus ve shouldRetryOnError gibi seçenekler, veri güncelliği davranışını kanca veya global düzeyde hassas biçimde ayarlamanızı sağlar.
Sıkça Sorulan Sorular
“useSWR Kancası: Veri Alma, Yükleme ve Hata Durumları” dersi ücretsiz mi?
Evet — “useSWR Kancası: Veri Alma, Yükleme ve Hata Durumları” 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.
“useSWR Kancası: Veri Alma, Yükleme ve Hata Durumları” dersinde ne öğreneceğim?
Özel veri alma işlevleriyle useSWR kullanıp yükleme, hata ve başarı durumlarını bildirimsel biçimde yönetin 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.
“useSWR Kancası: Veri Alma, Yükleme ve Hata Durumları” 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
- SWR'nin Temel Kavramları: Eski Veriyi Sunup Yenileme
- useSWR Kancası: Veri Alma, Yükleme ve Hata Durumları
- SWR ile Değişiklik ve İyimser Güncellemeler
- SWR ve React Query: Doğru Aracı Seçme