UseSWR’ye başlarken

Adım adım UseSWR nedir ve örnek kullanım

Melike Topcu Coskun
Yolda.com Tech
3 min readSep 1, 2022

--

UseSWR, Next.js’nin yaratıcısı vercel ekibi tarafından veri yakalama için geliştirilmiş bir React Hook kütüphanesi.

Photo by Lautaro Andreani on Unsplash

React ile önceden çalışmış olanlar bilir ki veri yakalama için fetch, axios gibi kütüphanelerden yardım alırız fakat bunlar sadece veriyi getirir ve başka hiç bir işleme girmez. İşte tam burada veriyi yakalayıp getirmesinin yanında bize güzel özellikler de sağlayan useSWR devreye giriyor.

Açılımı Stale-While-Revalidate. Bayat veriyi al günceli yerine koy gibi bir anlamı var :)

useSWR temel olarak, 3 adımda veri almayı gerçekleştiriyor.

1. Önce önbelleğe alınmış verileri döndürür. (stale)

2. Getirme isteğini gönderir. (revalidate)

3. Güncel verileri döndürür.

Ne gibi özelliklere sahip ?

  • Transport and protocol agnostic: Protokol bağımsız veri yakalama
  • Fast, lightweight and reusable data fetching: Veriler önbellekten işlendiği anda, SWR kaynaktan gelen verileri hemen tekrar getirir.
  • Built-in cache and request deduplication
  • Real-time experience
  • Revalidation on focus : Bir sayfaya yeniden odaklandığınızda veya tarayıcıdaki sekmeler arasında geçiş yaptığınızda SWR verileri otomatik olarak yeniden çeker.
https://swr.vercel.app/docs/revalidation
  • Revalidation on network recovery
  • Polling
  • Pagination and scroll position recovery
  • SSR and SSG
  • Local mutation (Optimistic UI): Değişikliklerin yerel olarak verilere uygulanması, yani her zaman en son verilere güncellenmesi.
  • Built-in smart error retry
  • Suspense mode: TypeScript ile birlikte kullanılabilir

Daha fazla ayrıntı için documentation (https://swr.vercel.app/) sayfasına bakabilirsiniz.

SWR’nin React’te örnek kullanımı

Artık SWR’yi öğrendiğimize göre, onu bir React uygulamasında kullanalım.

Adım 1: Paketi yükleyin

React uygulamamızda, aşağıdakileri çalıştırarak paketi yükleyin:

Adım 2: useSWR’yi import edelim

SWR, useSWR adında bir Hook’a sahiptir. Bunu şöyle bir React bileşenine aktaralım:

useSWR hooku genelde çok kullanılan 2 değer döndürür: veri ve hata

Adım 3: Bir fetcher fonksiyonu yazalım

Fetcher asenkron bi şekilde yazmak için herhangi bir data-fetching kütüphanesi kullanabilirsiniz.

Örneğin, bu, Axios kullanan bir fetcher fonksiyonu:

Daha fazla bilgiyi SWR belgelerinde bulabilirsiniz.

Adım 4: Datayı hazırlayalım

Şimdi bazı verileri almaya hazırız. Bu örnekte, bazı mock verileri almak için JSONPlaceholder API’sini kullanacağım.

Veriler tanımsız iken (getirilirken), Loading mesajı gösterebiliriz ve bir hata döndürülürse uygun UI’yi gösterebiliriz.

Adım 5: Verileri Görüntüleyelim

Son olarak, bileşen alındıktan sonra verileri döndürebilir. Bu örnekteki mock veriler aşağıdaki biçimdedir:

{
“userId”: 1,
“id”: 1,
“title”: “delectus aut autem”,
“completed”: false
}

Son hali şöyle görünecek:

Uygulamamızı test etmek için npm start diyip tarayıcımıza gidelim;

Bu makalede, useSWR Hook’un React’te veri almak için neden iyi bir seçim olabileceğinin bazı özelliklerini inceledik. Önbelleğe alma, sayfalandırma ve otomatik yeniden getirme özellikleri ile kullanıcı deneyimini iyileştirebiliyoruz.

useSWR basit ve arka uçtan bağımsız ve bu da her türlü API veya veritabanından hızlı ve kolay bir şekilde veri alınmasına olanak tanıyor.

Okuduğunuz için teşekkürler. Umarım SWR’ye ve onu React uygulamalarınızda nasıl kullanacağınıza dair faydalı bir giriş olmuştur.

--

--