首页 > 其他分享 >一、Axios入门——初认识Axios

一、Axios入门——初认识Axios

时间:2022-09-03 00:01:09浏览次数:82  
标签:axios 入门 认识 拦截器 url ajax Axios config 请求

一、axios是什么?

二、 axios 特点

  • 基于 xhr + promise 的异步 ajax 请求库

  • 浏览器端/node 端都可以使用

  • 支持请求/响应拦截器

  • 支持请求取消

  • 请求/响应数据转换

  • 批量发送多个请求

三、axios常用语法

  • axios(config): 通用/最本质的发任意类型请求的方式

  • axios(url[, config]): 可以只指定 url 发 get 请求

  • axios.request(config): 等同于 axios(config)

  • axios.get(url[, config]): 发 get 请求

  • axios.delete(url[, config]): 发 delete 请求

  • axios.post(url[, data, config]): 发 post 请求

  • axios.put(url[, data, config]): 发 put 请求

  • axios.defaults.xxx: 请求的默认全局配置

  • axios.interceptors.request.use(): 添加请求拦截器

  • axios.interceptors.response.use(): 添加响应拦截器

  • axios.create([config]): 创建一个新的 axios(它没有下面的功能)

  • axios.Cancel(): 用于创建取消请求的错误对象

  • axios.CancelToken(): 用于创建取消请求的 token 对象

  • axios.isCancel(): 是否是一个取消请求的错误

  • axios.all(promises): 用于批量执行多个异步请求

  • axios.spread(): 用来指定接收所有成功数据的回调函数的方法
    image

四、难点语法的理解和使用

4.1. axios.create(config)

  • 根据指定配置创建一个新的 axios, 也就就每个新 axios 都有自己的配置

  • 新 axios 只是没有取消请求和批量发请求的方法, 其它所有语法都是一致的

  • 为什么要设计这个语法?

    (1) 需求: 项目中有部分接口需要的配置与另一部分接口需要的配置不太一样, 如何处理?

    (2) 解决: 创建 2 个新 axios, 每个都有自己特有的配置, 分别应用到不同要求的接口请求中

  • 拦截器函数ajax请求请求的回调函数的调用顺序

    (1).说明: 调用 axios()并不是立即发送 ajax 请求, 而是需要经历一个较长的流程

    (2). 流程: 请求拦截器2 => 请求拦截器1 => 发ajax请求 => 响应拦截器1 => 响应拦截器 2 => 请求的回调

    (3).注意: 此流程是通过 promise 串连起来的, 请求拦截器传递的是 config, 响应拦截器传递的是 response

4.2. 取消请求

  • 基本流程

    配置 cancelToken 对象

    缓存用于取消请求的 cancel 函数

    在后面特定时机调用 cancel 函数取消请求

    在错误回调中判断如果 error 是 cancel, 做相应处理

  • 实现功能

    点击按钮, 取消某个正在请求中的请求,在请求一个接口前, 取消前面一个未完成的请求

五、目录结构

image

标签:axios,入门,认识,拦截器,url,ajax,Axios,config,请求
From: https://www.cnblogs.com/wml-it/p/16651736.html

相关文章

  • Flask 学习-41.Flask-RESTPlus 入门到放弃
    前言Flask-restfull是flask框架开发接口的一个框架,Flask-RESTPlus是Flask-restfull升级版,功能做了一些优化,主要是可以生成swagger在线文档了。环境准备先安装Flask......
  • JS逆向入门篇1
    目标网站:https://ac.scmor.com/第一步点击关键字visit('U3kwBQctIQAjMHZdVC1xRDs5LVQqURUfKxwQGjQACBZ5VysGVytwfmVgDQBVKSMZYRpbGwxAFhYOKl5JAWZRDw4EXzwWBwMT')第二......
  • C++ qt入门(持续更新)
    环境配置qt-unified-windows-x64-4.4.1-online.exe下载链接:在线安装时,除了默认的,还需要下载任意一个版本的MinGW、msvcVSqt插件:在VS的拓展--拓展管理中搜索QT下载第一......
  • Python入门系列(八)日期时间、数学、json
    日期时间Python中的日期本身不是数据类型,但我们可以导入一个名为datetime的模块,将日期作为日期对象使用。importdatetimex=datetime.datetime.now()print(x)日期......
  • 10_Linux基础-SHELL入门1
    @目录10_Linux基础-SHELL入门1一.输入输出重定向二.2个特殊文件三.heredocument四.tee命令五.清空文件内容六.SHELL入门SHELL的变量SHELL接收参数数据类型引号区别......
  • 一文带你认识AscendCL
    摘要:AscendCL(AscendComputingLanguage,昇腾计算语言)是昇腾计算开放编程框架,是对底层昇腾计算服务接口的封装。本文分享自华为云社区《【CANN文档速递09期】应用开发之推......
  • 音视频技术入门课-02 音频从采集到输出涉及哪些关键参数?
    我们平常听到的自然界的声音,比如说鸟鸣、水流,其实是一种模拟信号,声音是振动产生的一种声波,通过气态、液态、固态的物理介质传播并能被人或动物感知的波动现象。声音的频率......
  • python入门
    注释单行注释#这是单行注释多行注释''' 这是多行 注释'''1.注释一块内容#打印3次helloprint("hello")print("hello")print("hello")2.注释该行作用print......
  • NativeScript 入门
    NativeScript入门NativeScript是一个免费的开源框架,用于开发原生iOS和Android应用程序。这是一个JIT编译的框架。JS虚拟机用于运行NativeScript程序。它可以......
  • 2HTML5快速入门
    一、html骨架介绍:title标签:title就是在浏览器选项卡区域显示的文字。在浏览器打开后:  二、HTML基本语法标签:标签名必须要书写在一对尖括号<>内部。标......