Créer un composant image personnalisé
Astro fournit deux composants intégrés que vous pouvez utiliser pour afficher et optimiser vos images. Le composant <Picture>
vous permet d’afficher des images réactives et de travailler avec différents formats et tailles. Le composant <Image>
optimisera vos images et vous permettra de passer dans différents formats et propriétés de qualité.
Lorsque vous avez besoin d’options que les composants <Picture>
et <Image>
ne supportent pas actuellement, vous pouvez utiliser la fonction getImage()
pour créer un composant personnalisé.
Dans cette recette, vous utiliserez la fonction getImage()
pour créer votre propre composant image personnalisé qui affiche différentes images sources en fonction des requêtes média.
Recette
Titre de la section Recette-
Créez un nouveau composant Astro et importez la fonction
getImage()
. -
Créez un nouveau composant pour votre image personnalisée.
MyCustomComponent.astro
recevra troisprops
deAstro.props
. Les propsmobileImgUrl
etdesktopImgUrl
sont utilisées pour créer votre image en différentes tailles d’affichage. La propriétéalt
est utilisée pour le texte alternatif de l’image. Ces props seront passées à chaque fois que vous effectuerez le rendu de vos composants d’image personnalisés. Ajoutez les imports suivants et définissez les props que vous utiliserez dans votre composant. Vous pouvez également utiliser TypeScript pour le typage des props. -
Définissez chacune de vos images réactives en appelant la fonction
getImage()
avec les propriétés souhaitées. -
Créez un élément
<picture>
qui génère unsrcset
avec vos différentes images affichées en fonction de la taille de l’écran. -
Importez et utilisez
<MyCustomImageComponent />
dans n’importe quel fichier.astro
. Assurez-vous de passer les props nécessaires à la génération de deux images différentes selon la taille de l’écran :