Next.js: jaký je rozdíl mezi použitím "prodloužit" možnost v getStaticProps a pomocí SWR balíček?

0

Otázka

Next.js má to "prodlouží" možnost po vybalení z krabice:

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

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

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

Výše uvedený kód bude ujistěte se, že stránky se regeneruje po 60 sekundách od okamžiku, kdy jsme požádali aktualizované údaje (první refresh, aby se žádost o nová data, druhý aktualizovat stránku). Ten je založen na Přírůstkové Statickou Regeneraci, takže stránky nemusí být přestavěn.

Z ocelových lan a kabelů docs:

Pokud vaše stránka obsahuje často aktualizovat data, a nemusíte pre-render data, SWR je perfektní a žádné speciální nastavení potřebné: jen importovat useSWR a použijte hák uvnitř žádné součásti, které používají data.

Takže, to znamená, že v tomto případě, useSWR je v podstatě stejný jako next.js "prodloužení platnosti" možnost? Zdá se, že dělá stejnou věc, ale jak často se prodloužení platnosti dojít? Je tam výhoda použití jednoho nad druhým?

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

Nejlepší odpověď

1

Ne, nejsou stejné a vhodné pro různé případy použití.

useSWR je načítání dat hák, který zajišťuje ukládání do mezipaměti a automatické prodloužení platnosti mechanismy (které můžete ovládat), aby data čerstvé na straně klienta. Data prodloužení platnosti bude stát na straně klienta a bude jen přínosem, že jeden uživatel.

Pomocí revalidate a Přírůstkové Statická Regenerace umožňuje regenerovat statické stránky na straně serveru. Celou stránku dostane znovu generovány na serveru a je staticky v mezipaměti. Jakékoliv další požadavky (z jakéhokoliv uživatele), se podává obnovené stránky.

Použití jednoho nebo druhého závisí zcela na vašich požadavcích, a navzájem se nevylučují - můžete používat obě současně.

2021-11-24 08:43:12

V jiných jazycích

Tato stránka je v jiných jazycích

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