Olá! Bem-vindo de volta à nossa jornada de construção com Astro.
Na lição anterior, você desvendou o segredo do <slot />, o "encaixe perfeito" que permite a um layout receber o conteúdo único de uma página. Vimos que um layout sem um <slot /> é como uma caixa de pizza sem lugar para a pizza.
Agora que você tem a "Caixa" (BaseLayout.astro) e as "Pizzas" (suas páginas), o objetivo desta micro-lição é aprender a montar tudo. Vamos aplicar um layout existente a uma nova página para garantir uma estrutura consistente. Este é o momento em que a teoria se torna uma poderosa economia de tempo e esforço.
1. Hook (A Trava Mental)
- Aprendiz: "Mestre, já tenho minha 'planta baixa' no arquivo
BaseLayout.astro. Agora tenho minhas páginasindex.astro,sobre.astroe uma nova que quero criar,contato.astro. Como eu 'visto' todas elas com essa mesma 'roupa', sem precisar copiar e colar o cabeçalho e rodapé em cada uma?"
2. Deep Dive (A Solução: Importar e Envelopar)
- Mestre: "O processo é elegante e simples, consistindo em apenas dois passos: Importar e Envelopar."
- Importar: No topo do script da sua página (dentro do
---), você importa o arquivo do layout, da mesma forma que chamaria uma ferramenta de sua caixa. - Envelopar (Wrap): Você então "envelopa" todo o conteúdo exclusivo daquela página com as tags do layout que acabou de importar.
Ao fazer isso, você está dizendo ao Astro: "Pegue esta estrutura do BaseLayout, e no lugar exato do <slot />, insira este bloco de HTML que estou te dando."
Vamos ver isso em ação. Imagine que você tem uma página sobre.astro que está completamente autônoma, com todo o HTML repetido.
ANTES: src/pages/sobre.astro (Repetitivo)
<html lang="pt-br">
<head>
<meta charset="utf-8" />
<title>Sobre Mim</title>
</head>
<body>
<header>
<a href="/">Início</a> | <a href="/sobre">Sobre</a>
</header>
<main>
<h1>Sobre Mim</h1>
<p>Eu sou um empreendedor serial apaixonado por tecnologia.</p>
</main>
<footer>
<p>© 2024 Meu Negócio</p>
</footer>
</body>
</html>
Agora, vamos aplicar nosso BaseLayout.astro a ela.
DEPOIS: src/pages/sobre.astro (Refatorado e Limpo)
---
import BaseLayout from '../layouts/BaseLayout.astro';
---
<BaseLayout>
<h1>Sobre Mim</h1>
<p>Eu sou um empreendedor serial apaixonado por tecnologia.</p>
</BaseLayout>
Observe a diferença. O arquivo da página agora contém apenas o que é único nela. Todo o resto (<html>, <head>, <body>, <header>, <footer>) foi delegado ao BaseLayout.
3. O Fazer (Microlearning Prático)
Ver a transformação acontecer é a melhor forma de internalizar o conceito.
Create template layouts for your HTML with Astro SSG
O vídeo 'Create template layouts for your HTML with Astro SSG' de Kevin Powell é uma aula magna sobre este processo. Ele demonstra exatamente como pegar uma página HTML existente e refatorá-la para usar um layout Astro.
Assista ao trecho de 17:36 a 20:26. Observe como ele: Renomeia about.html para about.astro. Limpa todo o código repetido, deixando apenas o conteúdo da tag <main>. Adiciona o import do layout no topo. Envelopa o conteúdo restante com as tags <MainLayout>. Este é exatamente o fluxo de trabalho que você usará.
Agora que você viu o processo, a documentação oficial do Astro pode servir como um guia de referência rápida.
Construa seu primeiro layout - Astro Docs
A documentação oficial do Astro, na página 'Construa seu primeiro layout', tem uma seção de desafio que resume perfeitamente esta lição.
Leia a seção 'Tente você mesmo - Utilize seu layout em todo lugar'. Ela te desafia a refatorar suas outras páginas para usar o componente de layout. Preste atenção na lista de itens a serem excluídos da página individual – é um ótimo checklist.
O resultado final em seu editor de código será algo limpo e claro, como mostrado na imagem abaixo, onde a página (index.astro) importa e usa o Layout, passando o conteúdo único para dentro dele.

4. Checkpoint (Dica de IA)
- Mestre: "Sua habilidade de validação agora sobe de nível. Você não apenas verifica se o layout tem um
<slot />, mas também se as páginas estão usando o layout corretamente. Você pode instruir a IA com precisão cirúrgica."
Como dar a instrução para a IA:
"IA, refatore meu arquivo
src/pages/contato.astro. Ele atualmente contém uma estrutura HTML completa. Quero que ele utilize meu layout localizado emsrc/layouts/BaseLayout.astro. Mantenha apenas o conteúdo dentro da tag<main>como conteúdo exclusivo dentro do novo componenteBaseLayoute remova todo o resto do HTML repetido."
Seu Checklist de Validação Rápida:
- O arquivo da página (
.astro) tem a instruçãoimport BaseLayout from '../layouts/BaseLayout.astro';no topo? - Todo o código repetitivo (
<html>,<head>,<footer>, etc.) foi removido do arquivo da página? - O conteúdo único da página está envolvido pelas tags
<BaseLayout> ... </BaseLayout>?
Se a resposta for "sim" para os três, a IA executou a tarefa perfeitamente.
Conclusão
Nesta lição, você aprendeu o passo prático e transformador de aplicar layouts. Agora você pode criar quantas páginas quiser, todas compartilhando a mesma estrutura, mas cada uma com seu próprio conteúdo.
-
Key Takeaways:
- Aplicar um layout é um processo de duas etapas: importar o arquivo de layout e envelopar o conteúdo da página com suas tags.
- Isso resulta em arquivos de página muito mais limpos e focados apenas no conteúdo exclusivo.
- Qualquer alteração no
BaseLayout.astro(ex: adicionar um novo link no menu) se refletirá instantaneamente em todas as páginas que o utilizam.
-
Próximo Passo: Dominamos a reutilização da "casca" do site com Layouts. Mas e as peças menores dentro das páginas? E se quisermos reutilizar um botão, um card de produto ou um banner? Na próxima lição, mergulharemos no conceito de Componentes, os "blocos de Lego" que compõem suas páginas.