数据获取
.astro
文件可以在构建时获取远程数据来辅助页面生成。
Astro 中的 fetch()
段落标题 Astro 中的 fetch()所有 Astro 组件 都可以在它们的组件脚本中通过全局 fetch()
函数来使用完整的 URL(例如 https://example.com/api)发起 HTTP 请求到 API。
此外,你可以使用 new URL("/api", Astro.url)
构建一个 URL,指向你的项目中按需在服务器上渲染的页面和端点。
fetch 调用将会在构建时执行,并且数据都可用于组件模板中来生成动态 HTML。如果启用 SSR 模式,任何 fetch 调用都将在运行时执行。
💡 在 Astro 组件 script 中使用顶层 await 的优势。
💡 将获取的数据作为参数传递给 Astro 和框架组件。
请记住,Astro 组件中的所有数据都是在渲染组件时获取的。
你部署的 Astro 站点将在构建时获取一次数据。在开发中,你将在组件刷新时看到数据获取。如果你需要在客户端多次重新获取数据,请在 Astro 组件中使用框架组件或客户端脚本。
在框架组件中使用 fetch()
段落标题 在框架组件中使用 fetch()fetch()
函数也可在任何框架组件中全局使用:
GraphQL 查询
段落标题 GraphQL 查询Astro 也可以使用 fetch()
和任一有效的 GraphQL 查询来查询 GraphQL 服务器。
从无头 CMS 中获取
段落标题 从无头 CMS 中获取Astro 组件可以从你最喜欢的 CMS 中获取数据,然后将其呈现为页面内容。使用动态路由,组件甚至可以根据你的 CMS 内容生成页面。
请参阅 CMS 指南,查看有关将 Astro 与无头 CMS(包括 Storyblok、Contentful 和 WordPress)集成的完整详细信息。