【问题标题】:Axios post request in GatsbyjsGatsbyjs 中的 Axios 发布请求
【发布时间】:2020-05-14 13:56:56
【问题描述】:

我有一个使用 gatsbyjs 模板的博客网站,并且我有一个发送用户电子邮件的时事通讯功能。 所以基本上我在发送电子邮件时使用 axios 发布请求。

我想知道 axios 在构建后是否可以在实时站点的 gatsby 中正常工作? 盖茨比不是在构建静态文件吗? axios 还能用吗?

【问题讨论】:

  • 我认为如文档中所述,它可以与 axios 一起使用,您也可以使用本机 fetch。 gatsbyjs.org/docs/data-fetching
  • 我猜您正在将一些数据(使用 axios)发布到发送时事通讯的后端服务。有点不清楚你的构建看起来如何。 Axios 只是一个帮助库,可以更轻松地在客户端创建请求,但您可以只使用 fetch。归根结底,Gatsby 只是一个 React 应用程序,所以你可以使用任何在 React 中工作的东西。
  • 谢谢大家! :) DILEEPTHOMAS & Albert Skibinski

标签: reactjs axios gatsby


【解决方案1】:

当然可以,Gatsby 会在你部署(或运行 build 命令)时生成并编译所有文件;这意味着它从所有来源(使用 GraphQL)获取内容(和数据)并生成带有捆绑 JavaScript 文件的静态 HTML 文件,这并不意味着您不能使用异步数据获取或异步函数来执行任何操作.这只是一个页面生成。

之后,如果您想使用 Axios 异步加载所有内容(例如),您可以实现这一点,但是,您将失去 Gatsby 的潜力。事实上,您的网站将是一个基于 React 的网站,因此您拥有 Gatsby 在页面生成 + React 功能方面提供的所有功能。

因此,您的所有 JavaScript 函数都会在您需要时触发(onClickuseEffectcomponentDidMount 等)。这是有关 Gatsby 在数据获取方面如何工作的屏幕截图。

您唯一需要考虑的是,在使用第三方库时不要加载到您的 Webpack 配置中(因为某些库需要在构建时定义 window,而对于 Gatsby,您不需要) t) 但它在their documentation 中得到了完美的处理。

【讨论】:

    【解决方案2】:

    是的,它会起作用,在 Gatsby 的文档中有很多 axios examples

    Gatsby 生成 JS 文件,所以执行axios 代码不会有问题。

    【讨论】:

    • 谢谢丹尼斯·瓦什。对我有很大帮助:)
    猜你喜欢
    • 2022-12-10
    • 2019-03-19
    • 2020-09-24
    • 1970-01-01
    • 1970-01-01
    • 2020-05-12
    • 2019-02-25
    • 2020-11-19
    • 2021-09-01
    相关资源
    最近更新 更多