Busca de Dados
Arquivos .astro
podem buscar dados remotamente para te ajudar a gerar suas páginas.
fetch()
em Astro
Seção intitulada fetch() em AstroTodos os componentes Astro tem acesso a função global fetch()
em seus scripts do componente para fazer requisições HTTP à APIs usando a URL completa (e.x. https://example.com/api ou Astro.url + "/api"
).
Além disso, você pode construir uma URL para as páginas e endpoints do seu projeto que são renderizados sob demanda no servidor usando new URL("/api", Astro.url)
.
Essa chamada ao fetch
será executada em tempo de build, e os dados estarão disponíveis ao template do componente para gerar HTML dinâmico. Se o modo SSR estiver habilitado, quaisquer chamadas a fetch()
serão executadas em runtime.
💡 Aproveite-se do top-level await dentro do script do seu componente Astro.
💡 Passe os dados buscados para componentes Astro e de outros frameworks como props.
Lembre-se, todos os dados em componentes Astro são buscados quando o componente é renderizado.
Seu site Astro após o deploy irá buscar os dados uma vez, em tempo de build. No desenvolvimento, você verá a busca de dados ao recarregar componentes. Se você precisa buscar dados múltiplas vezes no lado do cliente, utilize um componente de framework ou um script no lado do cliente em um componente Astro.
fetch()
em Componentes de Frameworks
Seção intitulada fetch() em Componentes de FrameworksA função fetch()
também está globalmente disponível a qualquer componente de framework:
Consultas GraphQL
Seção intitulada Consultas GraphQLAstro também pode utilizar fetch()
para consultar um servidor GraphQL com qualquer consulta GraphQL válida.
Busque de um CMS Headless
Seção intitulada Busque de um CMS HeadlessComponentes Astro podem buscar dados de seu CMS favorito e então renderizá-lo como o conteúdo de sua página. Utilizando rotas dinâmicas, componentes podem até mesmo gerar páginas com base no conteúdo do seu CMS.
Veja nossos Guias de CMS para mais detalhes em como integrar o Astro com CMSes headless incluindo Storyblok, Contentful e WordPress.