Composants Framework
Construisez votre site Astro sans sacrifier votre Framework favori.
Astro supporte un large choix de Frameworks comme React, Preact, Svelte, Vue, SolidJS, AlpineJS et Lit.
Installation d’intégrations
Section titled Installation d’intégrationsAstro peut être installé avec des intégrations pour React, Preact, Svelte, Vue, SolidJS et Lit. Une ou plusieurs de ces intégrations peuvent être installées et configurées dans votre projet.
Afin de configurer Astro pour utiliser ces Frameworks, d’abord, installez son intégration et toutes ses dépendances associées :
Ensuite, importez et ajoutez la fonction à votre liste d’intégrations dans astro.config.mjs
:
⚙️ Consultez le Guide d’Intégrations pour plus de détails sur l’installation et la configuration d’intégrations Astro.
⚙️ Vous voulez voir un exemple pour le Framework de votre choix ? Visitez astro.new et sélectionnez un des modèles de Framework disponible.
Utilisation des composants de Framework
Section titled Utilisation des composants de FrameworkUtilisez vos composants de Framework JavaScript dans vos composants Astro, Pages et Layouts comme des composants Astro classiques ! Tous vos composants peuvent être placés dans /src/components
, ou peuvent être organisés de la manière que vous le souhaitez.
Pour utiliser un composant de Framework, importez-le à partir de son chemin relatif (y compris l’extension de fichier) dans le script du composant Astro. Ensuite, utilisez le composant avec d’autres composants, des éléments HTML et des expressions similaire au JSX dans le modèle du composant.
Par défaut, vos composants de Framework seront rendus en HTML statique. C’est pratique pour les composants qui n’ont pas à être interactifs et évite de transmettre à l’utilisateur du JavaScript inutile.
Hydratation des composants interactifs
Section titled Hydratation des composants interactifsUn composant de Framework peut être hydraté en utilisant une directive client:*
. C’est un attribut de composant pour définir comment votre composant devrait être rendu et hydraté.
Cette directive client:*
définit si oui ou non votre composant doit être rendu au moment de la compilation, et quand votre composant doit être chargé par le navigateur, côté client.
La plupart des directives rendront le composant sur le serveur à la compilation. Le JS du composant sera envoyé au client en fonction de la directive spécifiée. Le composant sera hydraté quand son JS aura terminé l’importation.
Directives d’hydratation disponibles
Section titled Directives d’hydratation disponiblesIl y a plusieurs directives d’hydratation disponibles pour les composants de Framework : client:load
, client:idle
, client:visible
, client:media={QUERY}
et client:only={FRAMEWORK}
.
📚 Allez voir notre page de référence des directives pour une description complète de ces directives, et de leur utilisation.
Mixer des Frameworks
Section titled Mixer des FrameworksVous pouvez importer et afficher des composants de plusieurs Frameworks, dans le même composant Astro.
Passer des Enfants à des Composants de Framework
Section titled Passer des Enfants à des Composants de FrameworkDans un composant Astro, vous pouvez passer des enfants à des composants de Framework. Chaque Framework a son propre modèle pour référencer ces enfants : React, Preact et Solid utilisent une propriété spéciale nommée children
, tandis que Svelte et Vue utilisent l’élément <slot />
.
De plus, vous pouvez utiliser les “Slots” Nommés pour grouper des enfants spécifiques ensemble.
Dans React, Preact et Solid, ces “Slots” seront convertis en propriété de niveau supérieur. Les noms de slots utilisant le format kebab-case
seront convertis en camelCase
.
Pour Svelte et Vue ces “Slots” peuvent être référencés avec un élément <slot>
et l’attribut name
. Les noms de slots utilisant le format kebab-case
seront conservés.
Imbriquer des composants de Framework
Section titled Imbriquer des composants de FrameworkDans un fichier Astro, les enfants de composants de Framework peuvent aussi être des composants hydratés. Cela signifie que vous pouvez imbriquer des composants de Framework dans d’autres composants de Framework.
Ceci permet de construire des applications entières dans votre Framework JavaScript préféré et de les rendre via un composant parent, à une page Astro.
Puis-je hydrater des composants Astro ?
Section titled Puis-je hydrater des composants Astro ?Si vous essayez d’hydrater un composant Astro avec un modificateur client:
, vous obtiendrez une erreur.
Les composants Astro sont des composants de Template uniquement en HTML sans éxécution côté client. Mais, vous pouvez utiliser une balise <script>
dans votre Template de composant Astro pour envoyer du JavaScript au navigateur qui s’exécute dans le contexte global
📚 Apprenez-en plus sur les <script>
client-side dans les composants Astro