Next.js é uma estrutura poderosa para criar aplicativos React de alto desempenho. Um de seus recursos é a capacidade de criar layouts personalizados para suas páginas, permitindo que você crie um design consistente, fácil de manter e atualizar em seu aplicativo.
Criando um componente de layout personalizado em Avançar. js
Na pasta chamada componentes em seu projeto Next.js, crie Layout.jsx e adicione o código a seguir para criar o componente de layout.
importar Cabeça de'próximo/cabeça'
importar Cabeçalho de'./Header.jsx'
importar Rodapé de'./Rodapé.jsx'
const Disposição = (crianças) => (
Meu aplicativo</title>
"stylesheet" href="/static/css/style.css" />
</Head>
{filhos}
</div>
)
exportar padrão Layout
< p>Este componente importa os componentes Header e Footer e aceita filhos como adereços. Ele renderiza os filhos entre os componentes Cabeçalho e Rodapé. Ao quebrar uma página com este layout, o cabeçalho e o rodapé serão exibidos na parte superior e inferior.
Usando o Componente de layout
Para usar o componente de layout, importe-o para um componente de página e use-o conforme mostrado abaixo.
importar Layout de '../components/Layout'
const Página = () => (
Início</h1>
</Layout>
)
exportar Página padrão
Aplicará o layout para esta página. Você pode repetir esse processo para todas as páginas nas quais deseja aplicar o layout.
Para usar o layout em todas as páginas dos aplicativos de uma só vez, importe o componente de layout no arquivo /page/_app.js e use-o da seguinte forma.
importar Layout de extensão> "../components/layout";
função MeuAplicativo({ Componente, pageProps } span>) {
retorno (
</Layout>
) ;
}
Os exemplos mostrados até agora use as pastas de 12 páginas do Next.js. No Next.js 13, você cria o layout na pasta do aplicativo (até o momento, está na versão beta).
Criando um layout personalizado na pasta App
A pasta app em Next.js 13 requer que você crie um layout raiz em sua base. Este é o layout que o Next.js aplicará a todas as páginas do seu aplicativo.
Para demonstrar, crie um arquivo chamado layout.jsx e adicione o seguinte código. p>
exportar padrão função RootLayout({ filhos } span>) {
retorno (
"en">
{children}</body>
</html>< br/> );
}
O componente de layout raiz aceita e renderiza o crianças. Abaixo estão algumas das coisas que você deve saber sobre um layout raiz:
- Você deve incluí-lo na pasta do aplicativo.
- Substitui _app.js e _document.js na pasta da página de Next.js 12.
- Você deve incluir explicitamente o HTML e a tag body.
- É um componente do servidor por padrão.
Como mencionado, o layout raiz se aplica a todas as páginas, então como criar layouts personalizados para diferentes segmentos de rota?
Na pasta do aplicativo, você pode definir uma rota criando pastas para cada rota segmento. Por exemplo, criar uma pasta chamada artigos mapeia para o caminho de URL app/articles. Para adicionar mais segmentos de rota, crie uma subpasta dentro da pasta de rota principal. Por exemplo, adicionar uma pasta chamada tendências dentro da pasta artigos mapeia para o caminho do URL app/articles/trending.
Ao adicionar um componente layout.jsx a uma pasta de rota, ele será aplicado a todas as páginas dentro dessa segmento de rota e suas subpastas. Por exemplo, adicionar um componente de layout à pasta artigos será aplicado a todas as páginas na rota de artigos, incluindo aquelas na subpasta tendências. Se você também adicionar um componente de layout na pasta tendências, o layout na pasta de artigos será aninhado dentro dela.
Vantagens de usar layouts
Next.js permite criar componentes de layout que você pode reutilizar em diferentes Páginas. Isso permite que você tenha uma aparência consistente em seu site sem duplicar o código em várias páginas. Além disso, os layouts ajudam você a implementar alterações rapidamente porque não precisa fazer alterações em cada página.