Sonraki.js: getStaticProps içinde" revalidate " seçeneğini kullanarak ve SWR paketini kullanarak arasındaki fark nedir?

0

Soru

Sonraki.js kutunun dışında bu "yeniden değerlendir" seçeneğine sahiptir:

export async function getStaticProps(context) {
  const data = await getData();

  if (!data) {
    return {
      notFound: true,
    };
  }

  return {
    props: { data },
    revalidate: 60,
  }
}

Yukarıdaki kod, bir sayfanın güncellenmiş verileri istediğimiz andan itibaren 60 saniye sonra yeniden oluşturulmasını sağlayacaktır (yeni veriler için istekte bulunmak için önce yenile, sayfayı güncellemek için ikinci yenile). Bu, Artan Statik Rejenerasyona dayanır, bu nedenle sitenin yeniden oluşturulması gerekmez.

SWR dokümanlarından:

Sayfanızda sık sık güncellenen veriler varsa ve bunu yapmanız gerekmiyorsa verileri önceden oluşturduktan sonra, SWR mükemmel bir uyum sağlar ve özel bir kurulum gerektirmez: sadece useswr'yi içe aktarın ve kancayı kullanan bileşenlerin içinde kullanın. veri.

Yani, bu durumda useswr'nin temelde bir sonraki ile aynı olduğu anlamına mı geliyor?js" yeniden değerlendir " seçeneği? Aynı şeyi yapıyor gibi görünüyor ama yeniden değerleme ne sıklıkta gerçekleşiyor? Diğeri üzerinde birini kullanarak herhangi bir avantaj sağlar mı?

next.js reactjs swr
2021-11-24 02:32:17
1

En iyi cevabı

1

Hayır, aynı değiller ve farklı kullanım durumlarına uyuyorlar.

useSWR verileri istemci tarafında taze tutmak için önbelleğe alma ve otomatik yeniden değerleme mekanizmaları (denetleyebileceğiniz) sağlayan bir veri alma kancasıdır. Verilerin yeniden değerlenmesi istemcide gerçekleşir ve yalnızca bu tek kullanıcıya fayda sağlar.

Kullanım revalidate ve Artımlı Statik Yenileme, sunucu tarafındaki statik sayfaları yeniden oluşturmanıza olanak sağlar. Tüm sayfa sunucuda yeniden oluşturulur ve statik olarak önbelleğe alınır. Sonraki istekler (herhangi bir kullanıcıdan) yeniden oluşturulan sayfaya sunulacaktır.

Birini veya diğerini kullanmak tamamen gereksinimlerinize bağlıdır ve bunlar birbirini dışlamaz-ikisini de aynı anda kullanabilirsiniz.

2021-11-24 08:43:12

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................