Next.js: qual é a diferença entre usar o "revalidar" opção no getStaticProps e usando o SWR pacote?

0

Pergunta

Next.js tem este "revalidar" opção fora da caixa:

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

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

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

O código acima irá certificar-se de que a página é regenerado após 60 segundos a partir do momento que solicitou os dados atualizados (primeira atualização para fazer um pedido para os novos dados, segundo atualizar para atualizar a página). Isto é baseado na Incremental Estático de Regeneração, de modo que o site não precisa ser reconstruído.

A partir do SWR docs:

Se a página contém freqüência de atualização de dados, e você não precisa pré-processar os dados, os cabos de aço é um ajuste perfeito e nenhuma configuração especial necessário: basta importar useSWR e use o gancho dentro de qualquer veículo que utilize o dados.

Então, isso significa que, neste caso, useSWR é basicamente o mesmo que o next.js "revalidar" opção? Ele parece estar fazendo a mesma coisa, mas como muitas vezes acontece, a revalidação ocorre em seguida? Existe alguma vantagem de usar um sobre o outro?

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

Melhor resposta

1

Não, eles não são os mesmos e se adequar a diferentes casos de uso.

useSWR é uma busca de dados gancho que fornece armazenamento em cache e a revalidação automática de mecanismos (que você pode controlar) para manter os dados fresco no lado do cliente. Os dados revalidação vai acontecer no cliente e só vai beneficiar um único usuário.

Usando revalidate e Incremental Estático Regeneração permite gerar páginas estáticas no lado do servidor. A página inteira é gerado novamente no servidor e é estaticamente em cache. As solicitações subseqüentes (de qualquer usuário) será servido o regenerado página.

O uso de um ou outro depende dos seus requisitos, e eles não são mutuamente exclusivos - você pode usar os dois ao mesmo tempo.

2021-11-24 08:43:12

Em outros idiomas

Esta página está em outros idiomas

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