promise axios ajax 的区别详解

介绍axios和promise
一、axios的介绍

  1. axios 是由 promise 封装的一个 http 的库。
  2. promise是 es6 为解决异步编程的。
    什么是异步?
      1. 不会按照浏览器的加载方式 由上到下。
  3. 前端哪里面有异步?
      1. 回调函数
      2. 定时器
      3. 事件绑定
      4. ajax
    二、列举一个例子
  4. 针对这个例子 会出现 层层回调函数的嵌套 我们称为(回调地狱)
  5. 这样很不好 对我们后期的维护也很麻烦,所以出现了 promise
    在这里插入图片描述

axios是通过promise实现对ajax技术的一种封装,就像jQuery实现ajax封装一样。
简单来说: ajax技术实现了网页的局部数据刷新,axios实现了对ajax的封装。
axios是ajax ajax不止axios。

优缺点:
ajax:
本身是针对MVC的编程,不符合现在前端MVVM的浪潮
基于原生的XHR开发,XHR本身的架构不清晰,已经有了fetch的替代方案
JQuery整个项目太大,单纯使用ajax却要引入整个JQuery非常的不合理(采取个性化打包的方案又不能享受CDN服务
axios:
从 node.js 创建 http 请求
支持 Promise API
客户端支持防止CSRF
提供了一些并发请求的接口(重要,方便了很多的操作)

为什么vue不使用ajax用axios:
axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端,本质上也是对原生XHR的封装,只不过它是Promise的实现版本,符合最新的ES规范,它本身具有以下特征:

从浏览器中创建 XMLHttpRequest

支持 Promise API

客户端支持防止CSRF

提供了一些并发请求的接口(重要,方便了很多的操作)

从 node.js 创建 http 请求

拦截请求和响应

转换请求和响应数据

取消请求

自动转换JSON数据

promise是什么?
1、主要用于异步计算
2、可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果
3、可以在对象之间传递和操作promise,帮助我们处理队列

猜你喜欢

转载自blog.csdn.net/MJ1314MJ/article/details/109011176