2026-04-21 22:16:33
相信作为一名身经百战的前端,大家对Ajax、Fetch、Axios都是很了解的,但是三者具体的区别是什么?
对Ajax、Fetch、Axios不了解的菜逼柿子,只能扑街了。这里我们就先以了解的基础上说一说三者的区别
初级版区别三者都用于网络请求,但是纬度不同。就像栈、队列、数组;栈、队列是一种逻辑结构,数组是一种数据结构;两个维度的东西。
Ajax(AsynchronousJavaScriptandXML(异步的JavaScript和XML)):一种技术统称。
AJAX不是新的编程语言,而是一种使用现有标准的新方法。它是随着web2.0逐渐流行开来的
Fetch:是一个具体的api
提供了一个JavaScript接口,用于访问和操纵HTTP管道的一些具体部分,例如请求和响应
Axios:是一个第三方库https://axios-http.com/docs/intro
进阶使用XMLHttpRequest实现Ajax这是一个非常基础的题目,就不做介绍了,直接上代码了
/****@param{*}url请求地址*@param{*}successFn回调参数*/functionmockAjax(url,successFn){constxhr=newXMLHttpRequest()xhr.open("GET",url,false)xhr.onreadystatechange=()=>{if(xhr.readyState==4){if(xhr.status==200){successFn(xhr.responseText)}}}xhr.send(null)}这里我们是使用XMLHttpRequest实现Ajax,XMLHttpRequest其实也是类似Fetch一样的全局api
Fetch浏览器原生API,用于网络请求
和XMLHttpRequest一个级别的,都是api
Fetch语法更加简洁,易用,支持Promise
代码演示functionajax2(url){returnfetch(url).then(res=>res.json())}果然是后出的东西更好用一点是不是。。。哈哈哈哈
我们既可以使用XMLHttpRequest实现Ajax,也可以使用Fetch实现Ajax;所以Ajax是一种技术统称,但是请注意XMLHttpRequest、Fetch是一种基础API
Axios最常用的网络请求库(随着Vue火爆起来)
内部可用XMLHttpRequest、Fetch来实现
第三方库https://axios-http.com/docs/intro
划重点了(咳咳咳)其实讲到这里了Ajax、Fetch、Axios三者的区别打击都应该知道该怎么回答了
Ajax技术统称
Fetch原生API
Axios第三方库他们都是和网络请求有关系的东西,就是不同维度
原文:https://juejin.cn/post/7103136454267633678