从 Axios 源码分析如何支持 fetch 方法的

从 Axios 源码分析如何支持 fetch 方法的

💡 原文中文,约2700字,阅读约需7分钟。
📝

内容提要

从 1.7.0 版本开始,Axios 支持 fetch 方法,但默认使用 xhr。使用 fetch 需要手动指定,优先级为 ['xhr', 'http', 'fetch']。可以自定义适配器以满足特定需求,Axios 会根据环境选择适配器。

🎯

关键要点

  • Axios 从 1.7.0 版本开始支持 fetch 方法,但默认使用 xhr。

  • 使用 fetch 方法需要手动指定,优先级为 ['xhr', 'http', 'fetch']。

  • 可以通过传入字符串或数组来指定适配器。

  • 若想使用 fetch() 适配器,只需提高其优先级,无需自定义适配器。

  • 支持自定义适配器以满足特定需求,如 jsonp 请求。

  • Axios 内部根据环境判断使用哪种适配器,默认顺序为 ['xhr', 'http', 'fetch']。

  • 新版本中,适配器支持判断被放在各适配器单独的文件中。

  • 扩展其他适配器时会更加方便,源码中提供了适配器的管理方式。

🔎

延伸解读

Axios 适配器优先级解析

在 Axios 1.7.0 版本中,虽然支持 fetch 方法,但默认优先使用 xhr。这意味着开发者在使用 Axios 时,需手动指定适配器,尤其是在需要使用 fetch 的场景下。了解适配器的优先级顺序有助于避免不必要的错误和性能问题。

自定义适配器的灵活性

Axios 允许开发者自定义适配器,以满足特定需求,如支持 jsonp 请求。这种灵活性使得 Axios 能够适应不同的业务场景,开发者可以根据项目需求调整请求方式,提升代码的可维护性和扩展性。

环境适配器选择机制

Axios 内部通过判断当前环境来选择适配器,确保在不同环境下都能正常工作。了解这一机制可以帮助开发者更好地调试和优化请求,尤其是在多环境部署时,确保请求方式的兼容性和稳定性。

延伸问答

Axios 从哪个版本开始支持 fetch 方法?

Axios 从 1.7.0 版本开始支持 fetch 方法。

如何在 Axios 中指定使用 fetch 方法?

可以通过传入字符串或数组来指定适配器,如传入 'fetch' 或 ['fetch', 'xhr', 'http']。

Axios 默认使用哪个适配器?

Axios 默认使用的适配器顺序是 ['xhr', 'http', 'fetch']。

如果需要自定义适配器,应该如何实现?

可以将 adapter 定义为一个函数,并返回一个 Promise 来实现自定义适配器。

Axios 如何判断使用哪个适配器?

Axios 根据环境支持情况,按照预设的适配器顺序来判断使用哪个适配器。

在新版本中,如何扩展其他适配器?

在新版本中,适配器的判断被放在各适配器单独的文件中,扩展其他适配器会更加方便。

🏷️

标签

➡️

继续阅读