Next.js: care este diferența dintre ajutorul "revalidare" opțiune în getStaticProps și utilizarea SWR pachet?

0

Problema

Next.js are acest "revalidare" opțiune din cutie:

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

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

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

Codul de mai sus va asigurați-vă că o pagină este regenerat după 60 de secunde din momentul în care am solicitat date actualizate (primul refresh pentru a face o cerere pentru noile date, al doilea refresh pentru a actualiza pagina). Acest lucru se bazează pe cele Elementare Static de Regenerare, astfel încât site-ul nu are nevoie să fie reconstruit.

Din SWR docs:

Dacă pagina conține frecvent actualizarea datelor, și nu trebuie să pre-randarea datelor, SWR este o potrivire perfectă și nici o configurare necesare: doar importa useSWR și de a folosi cârligul în interiorul orice componente care folosesc date.

Deci, înseamnă că, în acest caz, useSWR este în esență același ca next.js "revalidare" opțiune? Se pare că pentru a face același lucru, dar cât de des se revalidarea apar atunci? Există vreun avantaj folosind una peste alta?

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

Cel mai bun răspuns

1

Nu, ei nu sunt la fel și se potrivesc diferite cazuri de utilizare.

useSWR este o date preluarea cârlig, care oferă caching și automată revalidarea mecanisme (pe care le poate controla) să păstreze datele proaspete pe partea de client. Datele revalidarea se va întâmpla pe client și va beneficia doar că singur utilizator.

Folosind revalidate și Elementare Static Regenerarea vă permite să se regenereze pagini statice pe partea de server. Întreaga pagină se generat din nou pe server si este static în cache. Orice cereri ulterioare (de orice tip de utilizator) va fi servit regenerat pagina.

Folosind una sau alta depinde în totalitate de cerințele dumneavoastră, și nu sunt reciproc exclusive - puteți folosi pe amândouă în același timp.

2021-11-24 08:43:12

În alte limbi

Această pagină este în alte limbi

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