Construir un componente de imagen personalizado
Astro proporciona dos componentes integrados que puedes utilizar para mostrar y optimizar tus imágenes. El componente <Picture>
te permite mostrar imágenes responsivas y trabajar con diferentes formatos y tamaños. El componente <Image>
optimizará tus imágenes y te permitirá pasar diferentes formatos y propiedades de calidad.
Cuando necesitas opciones que los componentes <Picture>
y <Image>
no admiten actualmente, puedes utilizar la función getImage()
para crear un componente personalizado.
En esta receta, usarás la función getImage()
para crear tu propio componente de imagen personalizado que muestra diferentes imágenes de origen según los media queries.
Receta
-
Crea un nuevo componente de Astro e importa la función
getImage()
. -
Crea un nuevo componente para tu imagen personalizada.
MyCustomComponent.astro
recibirá tresprops
deAstro.props
. Las propsmobileImgUrl
ydesktopImgUrl
se utilizan para crear tu imagen en diferentes tamaños de pantalla. La propalt
se utiliza para el texto alternativo de la imagen. Estas props se pasarán siempre que renderices tus componentes de imagen personalizados. Añade las siguientes importaciones y define las props que utilizarás en tu componente. También puedes utilizar TypeScript para tipar las props. -
Define cada una de tus imágenes responsivas llamando a la función
getImage()
con las propiedades deseadas. -
Crea un elemento
<picture>
que genere un conjuntosrcset
con tus diferentes imágenes basado en los media queries deseadas. -
Importa y utiliza
<MyCustomImageComponent />
en cualquier archivo.astro
. Asegúrate de pasar las props necesarias para generar dos imágenes diferentes en los diferentes tamaños de pantalla: