Navegação Compartilhada
Parte da seção Essenciais do Next.js do Journey de React da Coddy — lição 12 de 47.
Uma barra de navegação é o item clássico para se colocar em um layout: escrita uma única vez, presente em todas as rotas e nunca remontada.
// app/layout.jsx
import Link from 'next/link';
export default function RootLayout({ children }) {
return (
<html lang="en">
<body>
<nav>
<Link href="/">Home</Link>
</nav>
{children}
</body>
</html>
);
}Observe onde {children} fica: depois do nav. Qualquer coisa que você colocar antes dele aparece acima da página, qualquer coisa depois aparece abaixo. O layout é apenas JSX. A única regra é que {children} tem que estar lá em algum lugar.
Agora o layout é seu arquivo, não um arquivo bloqueado. Adicione a nav, e depois veja-a permanecer no lugar enquanto a página muda abaixo dela.
Desafio
FácilDê ao Coddy Eats uma barra de navegação que esteja presente em todas as páginas.
Em app/layout.jsx, dentro de <body> e acima de {children}, adicione:
- Um
<nav>comid="nav" - Dentro dele, um
<Link>para/comid="home-link"e o textoHome - E um
<Link>para/menucomid="menu-link"e o textoMenu
As páginas estão bloqueadas: você só altera o layout. Os testes visitam /menu depois e verificam se a nav ainda está na tela.
Experimente você mesmo
import './globals.css';
import Link from 'next/link';
export const metadata = {
title: 'Coddy Eats',
};
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.js2Roteamento e Links
Pastas São RotasRotas AninhadasVinculando PáginasRotas DinâmicasPáginas Não EncontradasRecapitulação: Roteamento3Layouts e Metadados
O Layout RaizNavegação CompartilhadaLayouts AninhadosMetadados da PáginaMetadados DinâmicosRecapitulação: Layouts