Construisez votre première île Astro
Utilisez un composant Preact pour accueillir vos visiteurs avec un message de bienvenue sélectionné au hasard !
Préparez-vous à…
- Ajoutez Preact à votre projet Astro
- Incluez des îles Astro (composants Preact
.jsx
) sur votre page d’accueil - Utilisez des directives
client:
pour rendre les îles interactives
Ajoutez Preact à votre projet Astro
Titre de la section Ajoutez Preact à votre projet Astro-
Si c’est en cours d’exécution, quittez le serveur de développement pour accéder au terminal (raccourci clavier : Ctrl + C).
-
Ajoutez la possibilité d’utiliser des composants Preact dans votre projet Astro avec une seule commande :
-
Suivez les instructions de la ligne de commande pour confirmer l’ajout de Preact à votre projet.
Incluez une bannière de salutation Preact
Titre de la section Incluez une bannière de salutation PreactCe composant prendra un tableau de messages de salutation en tant que prop et en sélectionnera un au hasard pour l’afficher en tant que message de bienvenue. L’utilisateur peut cliquer sur un bouton pour obtenir un nouveau message aléatoire.
-
Créez un nouveau fichier dans
src/components/
nomméGreeting.jsx
Notez l’extension de fichier
.jsx
. Ce fichier sera écrit en Preact, pas en Astro. -
Ajoutez le code suivant à
Greeting.jsx
: -
Importez et utilisez ce composant sur votre page d’accueil
index.astro
.Vérifiez l’aperçu dans votre navigateur : vous devriez voir une salutation aléatoire, mais le bouton ne fonctionnera pas !
-
Ajoutez un deuxième composant
<Greeting />
avec la directiveclient:load
. -
Revisitez votre page et comparez les deux composants. Le deuxième bouton fonctionne parce que la directive
client:load
indique à Astro d’envoyer et de relancer son JavaScript côté client lorsque la page se charge, rendant le composant interactif. Nous appelons cela un composant hydraté. -
Une fois la différence claire, supprimez le composant Greeting non hydraté.
Analysez le motif
Titre de la section Analysez le motifIl existe d’autres directives client:
à explorer. Chacune envoie le JavaScript au client à un moment différent. client:visible
, par exemple, n’envoie le JavaScript du composant que lorsqu’il est visible sur la page.
Considérez un composant Astro avec le code suivant :
-
Parmi les cinq composants, lesquels seront des îles hydratées, envoyant du JavaScript au client ?
-
De quelle manière les deux composants
<PreactBanner />
seront-ils similaires ? De quelle manière seront-ils différents ? -
Supposez que le composant
SvelteCounter
affiche un nombre et comporte un bouton pour l’augmenter. Si vous ne pouviez pas voir le code de votre site web, seulement la page publiée en direct, comment sauriez-vous lequel des deux composants<SvelteCounter />
a utiliséclient:visible
?
Testez vos connaissances
Titre de la section Testez vos connaissancesPour chacun des composants suivants, identifiez ce qui sera envoyé au navigateur :
-
<ReactCounter client:load/>
-
<SvelteCard />