ajax__2">ajax 的优缺点:
属js原生,基于XHR进行开发,XHR结构不清晰
针对 mvc 编程,由于近来vue和React的兴起,不符合mvvm前端开发流程
单纯使用ajax 封装,核心是使用 XMLHttpRequest 对象,使用较多并有先后顺序的话,容易产生回调地狱。
fetch 的优缺点:
属于原生js,脱离了xhr,号称可以替代 ajax技术。
基于 Promise 对象设计的,可以解决回调地狱问题。
提供了丰富的API,使用结构简单。
默认不带cookie,使用时需要设置。
没有办法检测请求的进度,无法取消或超时处理。
返回结果是 Promise对象,获取结果有多种方法,数据类型有对应的获取方法,封装时需要分别处理,易出错。
浏览器支持性比较差。
axios的优缺点:
在浏览器中创建XMLHttpRequest请求,在node.js中创建http请求。
解决回调地狱问题
自动转化为json数据类型:
支持Promise技术,提供并发请求接口。
可以通过网络请求检测进度。
提供超时处理。
浏览器兼容性良好。
有拦截器,可以对请求和响应统一处理。
为何项目中建议使用axios:
兼容性好:
尽管Fetch是现代浏览器的标准,但在一些老版本浏览器中可能并不支持,而Axios很好地处理了这一问题,使得在网络请求方面具备更好的兼容性。
易于调试和维护:
Axios提供的错误处理机制和丰富的API使开发者能够更容易地编写和维护异步请求代码。
功能完善:
由于其高度封装和增强的功能特性,使用Axios往往能减少手动处理各种边缘情况的工作量,提高开发效率。
社区支持与成熟度:
Axios拥有庞大的社区支持,不断更新维护,且经过了大量的实际项目验证,稳定性较高。