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
Sección titulada Construye un componente HamburgerCrea 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
Sección titulada Escribe tu primera etiqueta scriptTu 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
Sección titulada Importa un archivo .jsEn 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
Sección titulada 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
Sección titulada ChecklistRecursos
Sección titulada RecursosScripts del lado del cliente en Astro
Tutorials