ajax、fetch、axios它们之间的差异与区别是什么?为什么我们的项目中建议使用axios?

news/2025/2/23 9:48:16

在这里插入图片描述

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拥有庞大的社区支持,不断更新维护,且经过了大量的实际项目验证,稳定性较高。


http://www.niftyadmin.cn/n/5451682.html

相关文章

ninja | ubuntu源码编译ninja

首先安装依赖 # 首先安装好anaconda,用conda管理好py环境 # 这里很大的不同就是不用make来编译源码 conda create -n conda_py python3.7.5# 安装apt依赖 apt update apt install git re2c 下载ninja包 git clone https://github.com/ninja-build/ninja.git 进行…

pinpa的使用

1、安装 yarn add pinia # or with npm npm install piniahttps://pinia.vuejs.org/zh/ 2.1如果你使用的是 Vue CLI,你可以试试这个 非官方插件。 创建一个 pinia 实例(根存储)并将其作为插件传递给应用程序: import { createAp…

【linux】linux防火墙相关操作命令

在Linux系统中,可以使用iptables或firewalld(取决于系统使用的防火墙管理工具)来开启/关闭特定的端口。以下是两种情况的示例命令: iptables防火墙服务 chkconfig --list | grep iptables #查看防火墙的服务 chkconfig iptables…

后端常问面经

笔者就读于中国地质大学北京的计算机技术专业,专注于Java开发。在准备实习的过程中,笔者吸取了各方面的面试经验和知识,包括JavaGuide、小林coding和黑马程序员的Java面试合集等。通过自己对知识点的理解和实际面试经历,整理了一些…

tcp/ip是什么意思,tcp/ip协议包含哪几层

TCP/IP是一种网络通信协议,它是互联网所采用的基本协议。TCP/IP协议是由美国国防部高级研究计划局(ARPA)在上世纪70年代设计开发的,经过多年发展和完善,已成为全球范围内最重要的网络通信协议之一。 首先,让…

​网络安全设备主要有什么​

网络安全设备指的肯定是硬件设备了,国内卖安全硬件的没几家,天融信,启明星辰,绿盟,深信服,就这四家卖的比较齐全吧,上它们官网看一下,就知道市面上主要的网络安全设备有哪些了。分类…

ssh登录qemu虚拟机里的linux系统

1、安装openssh,如果是根文件系统用buildroot构建,打开 BR2_PACKAGE_OPENSSH 开关 2、在qemu的启动脚本里增加 -net user,hostfwdtcp::2222-:22上面的命令启动了一个带有NAT网络的QEMU虚拟机,并设置了端口转发,将主机的2222端口…

加数

描述 给出一个正整数n(1≤n≤100000)。在n的右边加入n的一半,然后在新数的右边再加入n的一半的一半,一直进行,直到不能再加为止。 例如 n37 37的一半为18(取整数)加到n的右边成为 3718 18的一半…