Layouts Aninhados
Parte da seção Essenciais do Next.js do Journey de React da Coddy — lição 13 de 47.
O layout raiz não é o único. Adicione um layout.jsx em qualquer pasta e ele envolve as rotas dessa pasta, e apenas elas.
app/
layout.jsx wraps EVERYTHING
page.jsx /
menu/
layout.jsx wraps /menu and everything under it
page.jsx /menu
pizza/
page.jsx /menu/pizzaAcesse /menu/pizza e o Next.js os aninha de fora para dentro:
RootLayout
MenuLayout
PizzaPageAcesse / e apenas o layout raiz será executado: o layout do menu não está no caminho dessa URL, então ele nunca aparece.
Um layout aninhado é escrito exatamente como o layout raiz, menos a estrutura base: sem <html>, sem <body>. Apenas um componente recebendo children.
É assim que uma seção de um site ganha sua própria barra lateral, suas próprias abas, seu próprio cabeçalho, sem uma única instrução if sobre a URL atual.
Desafio
FácilA seção de menu precisa do seu próprio cabeçalho: em /menu e em suas páginas de pratos (dish), mas em nenhum outro lugar.
app/menu/layout.jsx já existe e passa children diretamente. Dentro do seu <section>, acima de {children}, adicione:
- Um
<h2>comid="menu-header"e o textoMenu
Os testes verificam se o cabeçalho é exibido em /menu e em /menu/pizza, e se ele desaparece ao voltar para /.
Experimente você mesmo
import './globals.css';
export const metadata = {
title: 'My App',
};
export default function RootLayout({ children }) {
return (
<html lang="en">
<body>
{children}
</body>
</html>
);
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Essenciais do Next.js
1Por que usar o Next.js
O que o Next.js adicionaA pasta AppSua primeira páginaRecapitulação: Por que usar o Next.js