Publicado em: 10/04/2024

Como Usar Rotas Paralelas | Next.js


Neste artigo, vamos explorar como implementar rotas paralelas no Next.js, uma funcionalidade poderosa que permite renderizar múltiplas páginas simultaneamente na mesma URL.

O que são Rotas Paralelas?

Rotas paralelas permitem que você renderize duas ou mais páginas no mesmo layout simultaneamente. Elas são especialmente úteis para:

  • Dashboards com múltiplas seções independentes
  • Interfaces com painéis laterais que precisam manter estado
  • Aplicações que exigem visualizações complementares
  • Implementação de modais persistentes

Estrutura de Diretórios

Para criar rotas paralelas, usamos uma convenção especial de nomenclatura:

1app/ 
2 cart/ 
3   @resume/
4      page.tsx    
5   @suggestions/
6      page.tsx 
7  layout.tsx

O prefixo @ indica ao Next.js que esses diretórios representam rotas paralelas. O arquivo layout.tsx receberá essas páginas como props.

Implementando o Layout

O componente de layout recebe as páginas paralelas como propriedades:

1export default function CartLayout({ children, resume, suggestions, }: 
2{ children: React.ReactNode, resume: React.ReactNode, suggestions: React.ReactNode }) {
3 const isLoggedIn = true;
4 return (
5 <div> {children} {isLoggedIn && ( <> {resume} {suggestions} </> )} </div> );}

Você pode controlar quais páginas são renderizadas com lógica condicional, como no exemplo de verificação de login.

Características das Rotas Paralelas

  • Cada rota paralela é tratada como uma página independente
  • Podem ter seus próprios arquivos loading.tsx e error.tsx
  • Carregam de forma independente (streaming)
  • Não são acessíveis diretamente via URL
  • Compartilham o mesmo contexto de URL

Casos de Uso Comuns

  1. Carrinho de compras: Mostrar resumo e sugestões simultaneamente
  2. Dashboards: Exibir múltiplos widgets/painéis
  3. Ferramentas de edição: Editor + pré-visualização lado a lado
  4. Redes sociais: Feed principal + sidebar com sugestões

Considerações Finais

As rotas paralelas oferecem benefícios significativos:

  • Separação de conceitos: Mantém componentes independentes
  • Performance: Carregamento independente de cada seção
  • Manutenibilidade: Facilita a evolução de cada parte
  • Experiência do usuário: Transições mais suaves

Para implementações avançadas, considere:

  1. Usar em conjunto com Intercepting Routes para modais
  2. Implementar skeletons para loading states
  3. Adicionar tratamento de erro individualizado
  4. Considerar acessibilidade ao empilhar múltiplas views

Rotas paralelas representam uma evolução na arquitetura de aplicações Next.js, permitindo criar interfaces complexas enquanto mantém a simplicidade do modelo de roteamento baseado em arquivos.

Fernando Cunha
Artigo deFernando Cunha

Com mais de 15 anos de experiência em tecnologia e formado pela FAAP em Administração de empresas, hoje é o CEO da Mestres da Web, empresa referência no mercado nacional e com projeções de expansão internacional.

últimos vídeos

veja nossos vídeos mais recentes e esteja por dentro de muitas novidades.

Au 02 - Front-end - React - Estrutura de projeto - Mestres BEGIN
play

Au 02 - Front-end - React - Estrutura de projeto - Mestres BEGIN

Explorando a estrutura gerada pelo Create React App, entendendo o papel das pastas public e src, os conceitos de Virtual DOM, JSX e componentes, além de como o CSS é aplicado nos projetos React.

Autor deste artigo
Fernando Cunha17/03/2025
Au 03 - Front-end - React - Criando layout da nossa aplicação - Mestres BEGIN
play

Au 03 - Front-end - React - Criando layout da nossa aplicação - Mestres BEGIN

Explorando a criação de um layout fixo para a aplicação React, com barra lateral, barra superior e área dinâmica para conteúdo. Utilizando o React Router Dom v6 para gerenciar navegação entre rotas.

Autor deste artigo
Fernando Cunha17/03/2025
Au 04 - Front-end - React - Estilizando o layout da aplicação - Mestres BEGIN
play

Au 04 - Front-end - React - Estilizando o layout da aplicação - Mestres BEGIN

Abordando técnicas para organizar estilos em React, utilizando seletores CSS, CSS Modules, integração com React Router, reset CSS eficiente e boas práticas para garantir consistência visual e manutenibilidade.

Autor deste artigo
Fernando Cunha17/03/2025