Publicado em: 08/08/2023

NextJS - Desvendando os Segredos dos Layouts


Neste vídeo, exploramos o sistema de layouts do Next.js, entendendo como componentes de layout funcionam e como eles se relacionam com o conteúdo das páginas através da propriedade children.

O Layout Raiz (Root Layout)

Todo projeto Next.js com App Router possui um arquivo obrigatório:

1app/layout.tsx

Este componente serve como base para toda a aplicação:

  • Define a estrutura HTML básica
  • Recebe a propriedade children que contém o conteúdo da página atual
  • É renderizado em todas as rotas da aplicação
1// Exemplo básico
2 export default function RootLayout({ children, }: { children: React.ReactNode }) {
3 return (
4 <html lang="pt-BR">
5   <body>
6     <p>Conteúdo fixo do layout</p>
7   {children}   
8   </body>  
9 </html> 
10)}

Como Funciona a Propriedade Children

A propriedade children é um conceito fundamental do React:

  1. Permite composição de componentes
  2. Tudo que é colocado entre as tags de abertura e fechamento de um componente se torna seu children
  3. No Next.js, o conteúdo da página atual é injetado como children no layout
1// Exemplo de componente com children 
2 function Title({ children }: { children: React.ReactNode }) {
3 return (
4 <div className="title-container"> {children} </div> 
5) } 
6// Uso do componente
7 <Title> <h1>Meu Título</h1> <p>Subtítulo</p> </Title>

Layouts Aninhados

Podemos criar layouts específicos para grupos de rotas:

  1. Crie um arquivo layout.tsx dentro de uma pasta de rota
  2. Este layout será aplicado a todas as rotas dentro dessa pasta e suas subpastas
  3. Herda o layout pai (se existir) e adiciona novas camadas
1app/ 
2   detalhes/
3     layout.tsx  # Layout específico para /detalhes  
4    page.tsx  
5layout.tsx      # Layout raiz

Vantagens do Sistema de Layouts

  • Evita repetição de código: Elementos comuns como cabeçalhos e rodapés ficam em um só lugar
  • Transições suaves: Apenas a parte do children muda entre rotas
  • Organização clara: Cada seção da aplicação pode ter seu próprio layout
  • Performance: O Next.js otimiza a renderização dos layouts

Considerações Finais

O sistema de layouts do Next.js oferece:

  • Uma maneira elegante de compartilhar UI entre rotas
  • Grande flexibilidade na organização da interface
  • Bom desempenho com renderização otimizada
  • Facilidade de manutenção ao centralizar elementos comuns

Dominar layouts é essencial para construir aplicações Next.js bem estruturadas e eficientes.

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