Envoyez votre premier script au navigateur
Ajoutons un menu hamburger pour ouvrir et fermer vos liens sur les écrans de taille mobile, nécessitant ainsi de l’interactivité côté client !
Préparez-vous à…
- Créez un composant de menu hamburger
- Rédigez un
<script>
pour permettre à vos visiteurs de site d’ouvrir et de fermer le menu de navigation - Déplacez votre JavaScript dans son fichier
.js
Construire un composant Hamburger
Titre de la section Construire un composant HamburgerCréez un composant <Hamburger />
pour ouvrir et fermer votre menu mobile.
-
Créez un fichier nommé
Hamburger.astro
danssrc/components/
-
Copiez le code suivant dans votre composant. Cela représentera votre menu “hamburger” à 3 lignes pour ouvrir et fermer vos liens de navigation sur mobile. (Vous ajouterez les nouveaux styles CSS à
global.css
ultérieurement.) -
Placez ce nouveau composant
<Hamburger />
juste avant votre composant<Navigation />
dansHeader.astro
.Montrez-moi le code !
-
Ajoutez les styles suivants pour votre composant Hamburger :
Rédigez votre première balise de script
Titre de la section Rédigez votre première balise de scriptVotre en-tête n’est pas encore interactif car il ne peut pas réagir aux interactions de l’utilisateur, comme cliquer sur le menu hamburger pour afficher ou masquer les liens de navigation.
L’ajout d’une balise <script>
fournit du JavaScript côté client pour “écouter” un événement utilisateur, puis réagir en conséquence.
-
Ajoutez la balise
<script>
suivante àindex.astro
, juste avant la balise de fermeture</body>
. -
Vérifiez à nouveau votre aperçu de navigateur à différentes tailles, et vérifiez que vous avez un menu de navigation fonctionnel qui est à la fois réactif à la taille de l’écran et réagit aux interactions de l’utilisateur sur cette page.
Importation d’un fichier .js
Titre de la section Importation d’un fichier .jsAu lieu d’écrire votre JavaScript directement sur chaque page, vous pouvez déplacer le contenu de votre balise <script>
dans son propre fichier .js
dans votre projet.
-
Créez
src/scripts/menu.js
(vous devrez créer un nouveau dossier/scripts/
) et déplacez-y votre JavaScript. -
Remplacez le contenu de la balise
<script>
surindex.astro
par l’importation de fichier suivante : -
Vérifiez à nouveau votre aperçu de navigateur à une taille plus petite et vérifiez que le menu hamburger ouvre toujours et ferme vos liens de navigation.
-
Ajoutez la même balise
<script>
avec l’importation sur vos deux autres pages,about.astro
etblog.astro
, et vérifiez que vous avez un en-tête réactif et interactif sur chaque page.
Vous aviez précédemment utilisé un peu de JavaScript pour construire des parties de votre site :
- Définir le titre de votre page et l’en-tête dynamiquement
- Parcourir une liste de compétences sur la page “À propos”
- Afficher conditionnellement des éléments HTML
Ces commandes sont toutes exécutées au moment de la construction pour créer du HTML statique pour votre site, puis le code est “jeté”.
Le JavaScript dans une balise <script>
est envoyé au navigateur, et est disponible pour s’exécuter, en fonction des interactions de l’utilisateur, comme le rafraîchissement d’une page ou la bascule d’une entrée.
Testez vos connaissances
Titre de la section Testez vos connaissances-
Quand Astro exécute-t-il tout JavaScript écrit dans la frontmatter d’un composant ?
-
En option, Astro peut envoyer du JavaScript au navigateur pour permettre :
-
Le JavaScript côté client sera envoyé au navigateur d’un utilisateur quand il est écrit ou importé :
Liste de contrôle
Titre de la section Liste de contrôleRessources
Titre de la section RessourcesScripts côté client dans Astro
TutorialsConstruisez-le vous-même - En-tête Suivant
Vérification : Unité 4 - Mises en page (Layouts)