当前位置: 首页 > 网络应用技术

封装Axios的最佳实践足以阅读此内容!

时间:2023-03-07 11:53:34 网络应用技术

  查看互联网上许多人的Axios教程,但或多或少是不合适的观点。在这里,我建议每个人的最佳练习。

  在线文章使您可以直接与拦截器返回数据。这种方法实际上是非常不合适的,这将使您后续功能很难扩展。

  建议使用功能代替拦截器

  有人可能在这里说太多麻烦,请等待并继续看不起。

  很多时候,我们的发展过程就是这样:

  但不幸的是,这只是一个理想的情况。在某些特殊情况下,您仍然需要处理异常或其他支持,例如:

  当您发送上述场景时,只能默默编写代码支持,但是如果您不拦截Axios的响应,则可以使用开源社区提供的方案。

  安装Axios-Retry,您可以使Axios支持自动重试功能

  PS:Axios-Retry插件支持配置单个请求

  安装Axios-JSONP可以允许您的Axios支持JSONP的功能。

  那些发展了Web API经验的人会遇到问题。如果API具有重大更改,则如何确保可用旧版本,请发布新的API?

  这种情况在服务器方面的开发方案中并不少见,尤其是公共API,例如:Douban API(失败)。

  当前的主流支持3种类型的版本控制:

  URI版本控制版本将通过(默认)标头版本控制请求的请求标题。

  标题和媒体类型模式,您可以参考以下文章以实现

  在支持页面转动的背景表单页面中,用户键入“转动”按钮并发送等待响应的请求,但是当用户单击搜索以进行搜索时,您需要再次获取数据。情况可能是:

  为此,您要自动取消最后一个请求,因此您读取Axios的取消请求,但是需要使用许多位置,因此您可以将此功能封装到独立的功能中。

  使用

  这无需自动取消,只需直接使用原始函数即可,不会影响原始功能的使用

  Axios包装中仍然有很多事情要做,例如全局错误处理(同样的情况不会影响正常请求)等。包装不应仅使用拦截器直接返回数据。

  此外,请求模块应保持独立性,建议扩展或制作独立功能,提供给外部呼叫,以使制作独立的HTTP模块更容易。