Construye tu primera isla de Astro
Utiliza un componente de Preact para saludar a tus visitantes con un mensaje seleccionado al azar.
Prepárate para...
- Añadir Preact a tu proyecto de Astro
- Incluir islas de Astro (componentes
.jsx
de Preact) en tu página de inicio - Usar las directivas
client:
para que las islas sean interactivas
Añade Preact a tu proyecto de Astro
Sección titulada Añade Preact a tu proyecto de Astro-
Si se está ejecutando, sal del servidor de desarrollo para acceder al terminal (método abreviado de teclado: Ctrl + C).
-
Añade la posibilidad de utilizar componentes Preact en tu proyecto de Astro con un solo comando:
-
Sigue las instrucciones de la línea de comandos para confirmar la adición de Preact a tu proyecto.
Incluye un cartel de felicitación de Preact
Sección titulada Incluye un cartel de felicitación de PreactEste componente tomará un array de mensajes de bienvenida como props y seleccionará aleatoriamente uno de ellos para mostrarlo como mensaje de bienvenida. El usuario puede hacer clic en un botón para obtener un nuevo mensaje aleatorio.
-
Crea un nuevo fichero en
src/components/
llamadoGreeting.jsx
.Ten en cuenta la extensión de archivo
.jsx
. Este archivo se escribirá en Preact, no en Astro. -
Añade el siguiente código a
Greeting.jsx
: -
Importa y utiliza este componente en tu página de inicio
index.astro
.Comprueba la vista previa en tu navegador: deberías ver un saludo aleatorio, ¡pero el botón no funcionará!
-
Añade un segundo componente
<Greeting />
con la directivaclient:load
. -
Vuelve a visitar tu página y compara los dos componentes. El segundo botón funciona porque la directiva
client:load
le dice a Astro que envíe y vuelva a ejecutar tu JavaScript en el cliente cuando la página cargue, haciendo que el componente sea interactivo. Esto se llama un componente hidratado. -
Una vez que la diferencia esté clara, elimina el componente Greeting sin hidratar
Analiza el patrón
Sección titulada Analiza el patrónHay otras directivas client:
para explorar. Cada una envía el JavaScript al cliente en un momento diferente. Por ejemplo, client:visible
sólo enviará el JavaScript del componente cuando sea visible en la página.
Considera un componente de Astro con el siguiente código:
-
¿Cuáles de los cinco componentes serán islas hidratadas, enviando JavaScript al cliente?
-
¿En qué se parecen los dos componentes
<PreactBanner />
? ¿En qué se diferenciarán? -
Supongamos que el componente
SvelteCounter
muestra un número y tiene un botón para aumentarlo. Si no pudieras ver el código de tu sitio web, sólo la página publicada en directo, ¿cómo sabrías cuál de los dos componentes<SvelteCounter />
utilizaclient:visible
?
Pon a prueba tus conocimientos
Sección titulada Pon a prueba tus conocimientosPara cada uno de los siguientes componentes, identifica lo que se enviará al navegador:
-
<ReactCounter client:load/>
-
<SvelteCard />