从 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 从哪个版本开始支持 fetch 方法?

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

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

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

Axios 默认使用哪个适配器?

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

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

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

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

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

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

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

➡️

继续阅读