Gatsbyjs中的Axios发布请求

时间:2020-05-14 13:56:56

标签: reactjs axios gatsby

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

我想知道axios在构建后是否可以在实际站点的gatsby中正常运行? 盖茨比不是在建立静态文件吗? axios仍然可以工作吗?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

此后,如果要使用Axios异步加载所有内容(例如),则可以实现此目的,但是,您将失去Gatsby的潜力。实际上,您的站点将是一个基于React的站点,因此就页面生成+ React功能而言,您将拥有Gatsby提供的所有功能。

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

enter image description here

您唯一需要考虑的是使用第三方库不将其加载到Webpack配置中时(因为某些库需要在构建时定义componentDidMount,而使用Gatsby时,否),但可以在their documentation中完美处理。