Construindo Aplicações Performáticas com Server-Side Rendering no Next.js
#Introdução ao Server-Side Rendering (SSR) no Next.js
Server-side Rendering (SSR) é quando o HTML da página é gerado no servidor a cada requisição. Isso é ótimo para SEO e para páginas que precisam de dados atualizados constantemente.
#Por Que Usar SSR?
SSR melhora o SEO porque os bots dos motores de busca veem o HTML completo. Além disso, garante que os usuários recebam conteúdo atualizado em cada visita, perfeito para sites de notícias ou e-commerce.
#Como Implementar SSR no Next.js
Para usar SSR em uma página Next.js, você precisa de uma função chamada getServerSideProps. Esta função busca dados no servidor toda vez que a página é solicitada.
#Exemplo de Uso
Vamos supor que você precise exibir dados atualizados de uma API externa. Você pode fazer isso facilmente com getServerSideProps.
export default function Page({ data }) {
return (
<div>
<h1>Dados Atualizados</h1>
<pre>{JSON.stringify(data, null, 2)}</pre>
</div>
);
}
// Função chamada a cada requisição
export async function getServerSideProps() {
const res = await fetch(`https://api.exemplo.com/dados`);
const data = await res.json();
return { props: { data } };
}
#Vantagens do SSR
Com SSR, o conteúdo dinâmico é renderizado no servidor, então o usuário não precisa esperar que o JavaScript carregue para ver os dados. Isso melhora a experiência do usuário.
#Quando Usar SSR
SSR é ideal para páginas que mudam com frequência, como blogs, páginas de produtos em lojas online, ou dashboards que mostram dados em tempo real.
#Diferentes Abordagens de Renderização
Next.js também suporta Static Site Generation (SSG), que gera páginas estáticas no build time. Use SSG para conteúdo que não muda com frequência e SSR para conteúdo dinâmico.
#Combinação de SSR e SSG
Você pode combinar SSR e SSG no seu projeto Next.js. Por exemplo, páginas de marketing podem usar SSG, enquanto páginas de produtos que precisam de dados atualizados podem usar SSR.
#Melhores Práticas
Sempre cacheie as respostas das APIs quando possível para melhorar a performance. Use bibliotecas como SWR para lidar com revalidação de dados no cliente.
#Conclusão