Next.js App Router

Última atualização: 2026-11-03

Next.js App Router App Router

O App Router é o roteador por convenção de arquivos introduzido no Next.js 13+: cada pasta dentro de app/ vira um segmento de URL, o page.tsx define a página, o layout.tsx é o layout compartilhado que não é re-renderizado na navegação, e os arquivos loading e error cuidam automaticamente dos estados de carregamento e erro. O resultado é roteamento praticamente sem código repetitivo.

GrupoEcossistema
TipoPadrão
DesdeIntroduzido no Next.js 13 (App Router), ainda em evolução no 14 / 15

ℹ️ Informação O editor transpila JSX para JavaScript e renderiza a UI real na sandbox; os componentes são montados automaticamente — sem render manual.

📝 Sintaxe

app/
├─ layout.tsx        # root layout: shared by every route
├─ page.tsx          # route / (home page)
├─ about/
│  └─ page.tsx       # route /about
└─ posts/
   ├─ page.tsx       # route /posts
   └─ [slug]/
      └─ page.tsx    # dynamic route /posts/:slug

// app/about/page.tsx — a server component can be async by default
export default async function AboutPage() {
  return <h1>About us</h1>
}

⚙️ Parâmetros

page.tsxO único arquivo de entrada de uma rota; sem ele em uma pasta, nenhuma rota é gerada.
layout.tsxO componente de layout compartilhado: permanece montado enquanto as rotas filhas mudam e não é re-renderizado, o que o torna o lugar certo para uma barra de navegação ou uma barra lateral.
[slug] dynamic segmentUm nome de pasta entre colchetes declara um parâmetro dinâmico, e o componente da página lê o valor real de params.slug.

Retorna:Sem valor de retorno — o App Router é um roteador por convenção de arquivos; as regras estão descritas na sintaxe e no exemplo.

▶ Exemplo

O exemplo roda direto: renderiza automaticamente ao expandir e edições valem na hora.

Saída:

Simulação: o painel esquerdo é um seletor de páginas — clicar em um dos quatro botões de rota o destaca em azul e troca a página atual; o painel de árvore de arquivos à direita mostra o caminho app/ que sustenta a URL atual em tempo real, por exemplo /posts/hello mapeia para app/posts/[slug]/page.tsx. Ele torna a convenção de que arquivos-são-rotas visível num relance.

💡 Pontos-chave

💡 Dica Um layout permanece montado enquanto as rotas mudam, então colocar a barra de navegação e a barra lateral nele evita re-renderizar a página inteira e mantém seu estado interno.
ℹ️ Informação Um page.tsx sem 'use client' no topo é um server component, então você pode aguardar dados diretamente e nenhum useEffect é necessário.
⚠️ Aviso Os nomes das pastas definem a URL e são sensíveis a maiúsculas: renomear uma pasta muda a rota, então lembre-se de atualizar os links internos.
Mais casos em breve.

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

P Qual é a diferença entre o App Router e o Pages Router?
R O Pages Router usa uma pasta pages/ mais funções de dados como getServerSideProps; o App Router usa a convenção da pasta app/, adota server components por padrão e aninha layouts de forma mais natural — é a recomendação oficial para novos projetos.
P Qual é a diferença entre layout e template?
R Um layout permanece montado e não é re-renderizado quando as rotas filhas mudam; um template é montado novamente a cada navegação (o que reproduz sua animação de entrada), então use um template apenas quando quiser um estado novo a cada visita.
P Como defino uma rota dinâmica?
R Use colchetes no nome da pasta: app/posts/[slug]/page.tsx mapeia para /posts/:slug, e o componente da página recebe o slug em seu argumento params; [...slug] inclusive captura vários segmentos de caminho.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%