Envía tu primer script al navegador
Añadamos un menú hamburguesa para abrir y cerrar los enlaces en pantallas de dispositivos móviles, lo que requiere cierta interactividad con el cliente.
Prepárate para...
- Crear un componente de menú de hamburguesa
- Escribir un
<script>
para que los visitantes de tu sitio puedan abrir y cerrar el menú de navegación - Mover tu JavaScript a un archivo
.js
.
Construye un componente Hamburger
Crea un componente <Hamburger />
para abrir y cerrar tu menú móvil.
-
Crea un archivo llamado
Hamburger.astro
ensrc/components/
. -
Copia el siguiente código en tu componente. Esto representará tu menú “hamburguesa” de 3 líneas para abrir y cerrar tus enlaces de navegación en móvil. (Añadirás los nuevos estilos CSS a
global.css
más tarde). -
Coloca este nuevo componente
<Hamburger />
justo antes de tu componente<Navigation />
enHeader.astro
.¡Enséñame el código!
-
Añade los siguientes estilos para tu componente Hamburger:
Escribe tu primera etiqueta script
Tu encabezado aún no es interactivo porque no puede responder a la entrada del usuario, como hacer clic en el menú hamburguesa para mostrar u ocultar los enlaces de navegación.
La adición de una etiqueta <script>
proporciona JavaScript del lado del cliente para “escuchar” un evento del usuario y luego responder en consecuencia
-
Añade la siguiente etiqueta
<script>
aindex.astro
, justo antes de la etiqueta de cierre</body>
. -
Comprueba de nuevo la vista previa del navegador en varios tamaños y verifica que el menú de navegación funciona, que es responsivo al tamaño de la pantalla y que responde a las entradas del usuario en esta página.
Importa un archivo .js
En lugar de escribir JavaScript directamente en cada página, puedes mover el contenido de la etiqueta <script>
a su propio archivo .js
en el proyecto.
-
Crea
src/scripts/menu.js
(tendrás que crear una nueva carpeta/scripts/
) y mueve tu JavaScript a ella. -
Sustituye el contenido de la etiqueta
<script>
enindex.astro
por la siguiente importación de archivos: -
Comprueba de nuevo la vista previa del navegador a un tamaño más pequeño y verifica que el menú hamburguesa todavía abre y cierra los enlaces de tu navegación.
-
Añade la misma etiqueta
<script>
con la importación a tus otras dos páginas,about.astro
yblog.astro
y comprueba que tienes un encabezado responsivo e interactivo en cada página.
Anteriormente habías utilizado JavaScript para construir partes de tu sitio:
- Definir dinámicamente el título y la cabecera de la página
- Mapeo a través de una lista de competencias en la página ‘Acerca de’
- Visualización condicional de elementos HTML
Todos esos comandos se ejecutan en tiempo de compilación para crear HTML estático para tu sitio, y luego el código se “tira”.
El JavaScript de una etiqueta <script>
se envía al navegador y está disponible para ejecutarse en función de las interacciones del usuario, como actualizar una página o cambiar una entrada.
Pon a prueba tus conocimientos
-
¿Cuándo ejecuta Astro cualquier JavaScript escrito en el frontmatter de un componente?
-
Opcionalmente, Astro puede enviar JavaScript al navegador para permitir:
-
El JavaScript del lado del cliente se enviará al navegador del usuario cuando se escriba o importe:
Checklist
Recursos
Scripts del lado del cliente en Astro
Tutorials