Construa um componente de imagem personalizado
Astro fornece dois componentes integrados que você pode usar para exibir e otimizar suas imagens. O componente <Picture>
permite que você exiba imagens responsivas e trabalhe com diferentes formatos e tamanhos. O componente <Image>
otimiza suas imagens e permite que você passe diferentes propriedades de formatos e de qualidade.
Quando você precisar de opções que os componentes <Picture>
e <Image>
não suportam atualmente, você pode usar a função getImage()
para criar um componente personalizado.
Nesta receita, você usará a função getImage()
para criar seu próprio componente de imagem personalizado que exibe arquivos de imagens diferentes com base em media queries.
Receita
Seção intitulada Receita-
Crie um novo componente Astro e importe a função
getImage()
-
Crie um novo componente para sua imagem personalizada.
MyCustomComponent.astro
receberá trêsprops
deAstro.props
. As propriedadesmobileImgUrl
edesktopImgUrl
são usadas para criar sua imagem em diferentes tamanhos de viewport. A propriedadealt
é usada para o texto alternativo da imagem. Essas propriedades serão passadas onde quer que você renderize seus componentes de imagem personalizados. Adicione as seguintes importações e defina as propriedades que você usará no seu componente. Você também pode usar TypeScript para tipar as propriedades. -
Defina cada uma de suas imagens responsivas chamando a função
getImage()
com as propriedades desejadas. -
Crie um elemento
<picture>
que gera umsrcset
com suas diferentes imagens baseado nas media queries desejadas. -
Importe e use
<MyCustomImageComponent />
em qualquer arquivo.astro
. Certifique-se de passar as props necessárias para gerar duas imagens diferentes em diferentes tamanhos de viewport: