Construye tu primer plantilla
Prepárate para...
- Refactorizar elementos comunes en un diseño de página
- Utilizar el elemento
<slot />
de Astro para colocar el contenido de la página dentro de una plantilla - Pasar valores específicos de la página como props a tu plantilla
Todavía tienes algunos componentes de Astro repetidamente renderizados en cada página. ¡Es hora de refactorizar para crear una plantilla de página compartido!
Crea tu primer componente plantilla
Sección titulada Crea tu primer componente plantilla-
Crea un nuevo archivo en la ubicación
src/layouts/BaseLayout.astro
. (Tendrás que crear primero una nueva carpetalayouts
). -
Copia el contenido completo de
index.astro
en tu nuevo archivo,BaseLayout.astro
.
Utiliza tu plantilla en una página
Sección titulada Utiliza tu plantilla en una página-
Sustituye el código en
src/pages/index.astro
por el siguiente: -
Comprueba de nuevo la vista previa del navegador para ver qué ha cambiado (o, alerta de spoiler: ¡no ha cambiado!).
-
Añade un elemento
<slot />
asrc/layouts/BaseLayout.astro
justo encima del componente de pie de página y, a continuación, comprueba la vista previa del navegador de tu página de inicio y observa lo que realmente ha cambiado esta vez.
La etiqueta <slot />
permite inyectar (o “introducir”) contenido hijo escrito entre las etiquetas de apertura y cierre <Component></Component>
en cualquier archivo Component.astro
.
Pasa valores específicos de la página como props
Sección titulada Pasa valores específicos de la página como props-
Pasa el título de la página a tu componente plantilla desde
index.astro
utilizando un atributo de componente: -
Cambia el script de tu componente plantilla
BaseLayout.astro
para recibir un título de página a través deAstro.props
en lugar de definirlo como una constante. -
Comprueba la vista previa de tu navegador para verificar que el título de tu página no ha cambiado. Tiene el mismo valor, pero ahora se muestra dinámicamente. Y ahora, en cada página individual puedes especificar tu propio título en la plantilla.
Pruébalo tu mismo - Utiliza tu plantilla en todas partes
Sección titulada Pruébalo tu mismo - Utiliza tu plantilla en todas partesRefactoriza tus otras páginas (blog.astro
y about.astro
) para que utilicen tu nuevo componente <BaseLayout>
para renderizar los elementos comunes de la página.
No lo olvides:
-
Pasar un título de página como props a través de un atributo de componente.
-
Deja que la plantilla se encargue de la representación HTML de los elementos comunes.
-
Eliminar cualquier cosa de cada página que esa página ya no es responsable de la representación, ya que está siendo manejado por la plantilla, incluyendo:
- Elementos HTML
- Componentes y tus importaciones
- Reglas CSS en una etiqueta
<style>
(por ejemplo,<h1>
en tu página ‘Acerca de’). - Etiquetas
<script>
.
Pon a prueba tus conocimientos
Sección titulada Pon a prueba tus conocimientos-
Un componente de Astro (archivo
.astro
) puede funcionar como una: -
Para mostrar un título de página en la página, puedes:
-
La información puede pasar de un componente a otro mediante: