Skip to content

Latest commit

 

History

History
158 lines (119 loc) · 5.28 KB

File metadata and controls

158 lines (119 loc) · 5.28 KB
type title description i18nReady
tutorial
Créez un composant de navigation réutilisable
Tutoriel : Construisez votre premier blog Astro — Remplacez les éléments répétés sur plusieurs pages par un composant Astro réutilisable
true

import Blanks from '/components/tutorial/Blanks.astro'; import Box from '/components/tutorial/Box.astro'; import Checklist from '/components/Checklist.astro'; import MultipleChoice from '/components/tutorial/MultipleChoice.astro'; import Option from '/components/tutorial/Option.astro'; import PreCheck from '/components/tutorial/PreCheck.astro'; import { Steps } from '@astrojs/starlight/components'; import Badge from "~/components/Badge.astro"

Maintenant que vous avez écrit le même HTML sur plusieurs pages de votre site Astro, remplaçons ce contenu dupliqué par un composant Astro réutilisable !

- Créez un nouveau dossier pour les composants - Créez un composant Astro pour afficher vos liens de navigation - Remplacez le HTML existant par un nouveau composant de navigation réutilisable

Créez un nouveau dossier src/components/

Pour contenir les fichiers .astro qui généreront du HTML, mais qui ne deviendront pas de nouvelles pages sur votre site web, vous aurez besoin d'un nouveau dossier dans votre projet : src/components/.

Créez un composant de navigation

1. Créez un nouveau fichier : `src/components/Navigation.astro`.
  1. Copiez vos liens pour naviguer entre les pages depuis le haut de n'importe quelle page et collez-les dans votre nouveau fichier, Navigation.astro :

    ---
    ---
    <a href="/">Accueil</a>
    <a href="/a-propos/">À propos</a>
    <a href="/blog/">Blog</a>

    :::tip S'il n'y a rien dans le frontmatter de votre fichier .astro, vous n'avez pas à écrire les code fences. Vous pouvez toujours les ajouter quand vous en aurez besoin. :::

Importez et utilisez Navigation.astro

1. Revenez à `index.astro` et importez votre nouveau composant à l'intérieur du code fence :
```astro title="src/pages/index.astro" ins={2}
---
import Navigation from '../components/Navigation.astro';
import "../styles/global.css";
const pageTitle = "Page d'accueil";
---
```
  1. Ensuite, remplacez les éléments de lien HTML de navigation existants par le nouveau composant de navigation que vous venez d'importer :

    <a href="/">Accueil</a>
    <a href="/a-propos/">À propos</a>
    <a href="/blog/">Blog</a>
    <Navigation />
  2. Vérifiez l'aperçu dans votre navigateur et remarquez qu'il devrait être exactement le même... et c'est ce que vous voulez !

Votre site contient le même HTML qu'auparavant. Mais maintenant, ces trois lignes de code sont fournies par votre composant <Navigation />.

Essayez par vous-même - Ajoutez la navigation au reste de votre site

Importez et utilisez le composant <Navigation /> dans les deux autres pages de votre site (about.astro et blog.astro) en utilisant la même méthode.

N'oubliez pas de

  • Ajouter une instruction d'importation en haut du script du composant, à l'intérieur du code fence.
  • Remplacer le code existant par le composant de navigation.

:::note Lorsque vous restructurez votre code sans changer l'apparence de votre page dans le navigateur, vous effectuez une refactorisation. Vous allez refactoriser plusieurs fois dans cette unité en remplaçant des parties du HTML de votre page par des composants.

Cela vous permet de commencer rapidement avec un code fonctionnel, souvent dupliqué dans tout votre projet. Ensuite, vous pouvez améliorer de manière incrémentielle la conception de votre code existant sans changer l'apparence extérieure de votre site. :::

Testez vos connaissances

  1. Vous pouvez faire cela lorsque vous avez des éléments répétés sur plusieurs pages :

    redémarrer le serveur de développement refactoriser pour utiliser un composant réutilisable créer une nouvelle page
  2. Les composants Astro sont :

    réutilisables des fragments de HTML les deux !
  3. Les composants Astro créeront automatiquement une nouvelle page sur votre site lorsque vous...

    incluez `` refactorisez placez le fichier `.astro` dans `src/pages/`

Liste de contrôle

- [ ] Je peux refactoriser le contenu en composants réutilisables. - [ ] Je peux ajouter un nouveau composant à une page `.astro`.

Ressources