本篇文章给大家带来的内容是关于axios是什么?axios基于业务场景的二次封装详解(示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。
在前端框架中的应用也是特别广泛,不管是vue还是react,都有很多项目用axios作为网络请求库。
我在最近的几个项目中都有使用axios,并基于axios根据常见的业务场景封装了一个通用的request服务。
业务场景:
全局请求配置。
get,post,put,delete等请求的promise封装。
全局请求状态管理,供加载动画等使用。
路由跳转取消当前页面请求。
请求携带token,权限错误统一管理。
定义全局的默认配置
1 2 3 |
|
自定义配置(非常见业务场景,仅作介绍)
1 2 3 4 5 6 |
|
优先级:自定义配置 > 默认配置
请求拦截器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
1.请求拦截器中将所有请求的url添加进请求列表变量,为取消请求及loading状态管理做准备
2.请求一旦开始,就可以开启动画加载效果。
3.用户登录后可以在请求头中携带token做权限校验使用
响应拦截器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
1.响应返回后将相应的请求从请求列表中删除
2.当请求列表为空时,即所有请求结束,加载动画结束
3.权限认证报错统一拦截处理
4.取消请求的处理需要结合其他代码说明
5.由于项目后端并没有采用RESTful风格的接口请求,200以外都归为网络请求失败
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
|
1.axios cancel token API
2.存入需要取消的请求列表导出给导航守卫使用
3.router.js
1 2 3 4 5 6 7 8 9 10 11 12 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
|
以上。
Atas ialah kandungan terperinci axios是什么?axios基于业务场景的二次封装详解(示例). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!