# Ajax

  • 基于 XMLHttpRequest 基于 回调函数管理方式,不利于管理,异步操作繁琐。容易产生回调地狱

# Axios

Axios 是一个基于 Promise 的 HTTP 客户端,拥有以下特性:

  • 基于 XMLHttpRequest
  • 支持 Promise 封装管理,方便异步操作,可以链式管理
  • 能够拦截请求和响应;
  • 能够转换请求和响应数据;
  • 客户端支持防御 CSRF 攻击;
  • 同时支持浏览器和 Node.js 环境;
  • 能够取消请求及自动转换 JSON 数据。
  • 在浏览器端 Axios 支持大多数主流的浏览器,比如 Chrome、Firefox、Safari 和 IE 11

# Fetch

  • Es6 里面直接带的(不兼容 ie 浏览器)本身就是基于 Promise 封装,和 XMLHttpRequest 没有任何关系,是浏览器新提供的一种前后端数据通信方案

  • 不兼容 IE 浏览器,常用于内部管理系统

  • 参考: MDN FetchAPI (opens new window)

# Umi-Request

# React-Query

# SWR

深入SWR 设计与源码分析 (opens new window)

# ky(基于Fetch封装)

# 总结

  • Ajax、Axios、Fetch三者区别:

    Ajax 和 Axios 都基于 XMLHttpRequest 的封装,Fetch 直接用(Es6,不兼容 IE)和 XMLHttpRequest 没有任何关系