A arquitetura documentada do Next.js
O Next.js é criado em torno do React e fornece uma camada de framework para roteamento, renderização, acesso a dados, endpoints de servidor, compilação e empacotamento. Isso descreve o modelo público de programação documentado para aplicações; não revela a infraestrutura privada usada para operar nextjs.org.
No App Router, a árvore de rotas é organizada por meio de arquivos para páginas, layouts, estados de carregamento, erros e comportamentos relacionados. Layouts e páginas são Server Components por padrão. Client Components definem subárvores executadas no navegador para estado, manipuladores de eventos, efeitos e APIs disponíveis somente no navegador.
Camadas públicas do framework
| Camada | Responsabilidade documentada |
|---|---|
| Componentes React | Compõem a interface de usuário e definem árvores de componentes de servidor ou cliente |
| App Router ou Pages Router | Mapeiam a estrutura da aplicação para rotas usando diferentes modelos do Next.js |
| Sistema de renderização | Produz saídas pré-renderizadas ou geradas no momento da requisição e coordena streaming quando aplicável |
| Cache e revalidação | Controlam a reutilização e a atualização de acordo com o comportamento da rota e dos dados |
| Route Handlers | Implementam endpoints HTTP dentro de uma aplicação App Router |
| Ferramentas de build | Compilam e empacotam o código e os ativos da aplicação para implantações compatíveis |
Uma rota do Next.js pode incluir conteúdo renderizado no servidor e interação direcionada no cliente. A presença de um Client Component não transforma todos os seus ancestrais em uma aplicação renderizada no navegador, embora o limite do cliente escolhido afete quais módulos são incluídos para o navegador.
Opções de entrega
- A exportação estática produz arquivos para projetos que não precisam de recursos de servidor sem suporte.
- A pré-renderização prepara a saída da rota antes de uma requisição individual.
- A renderização dinâmica produz a saída usando informações disponíveis no momento da requisição.
- O cache e a revalidação gerenciam a reutilização e a atualização entre esses extremos.
- Um ambiente de execução compatível é necessário para comportamentos no momento da requisição e outros comportamentos dependentes do servidor.
O guia oficial de implantação documenta a auto-hospedagem e os adaptadores de plataforma, portanto a Vercel não é um requisito técnico para todas as aplicações Next.js. A cobertura de recursos pode variar entre os ambientes. As equipes devem verificar roteamento, cache, comportamento de imagens, revalidação, streaming e Route Handlers em relação ao destino escolhido, em vez de inferir compatibilidade a partir de um build bem-sucedido.
