Vue 封装axios实现多个请求合并为一次 loading
2019-11-01 本文已影响0人
月_关
需求
请求开始的时候开始 loading, 然后在请求返回后结束 loading。
重点就是要拦截请求和响应。
然后,要解决多个请求合并为一次 loading。
最后 loading 组件即可。
1.引入axios实例创建

2.axios 提供了请求拦截和响应拦截的接口,每次请求都会调用startLoading方法,每次响应都会调用endLoading方法,我们封装一下这俩个方法
注意:startLoading endLoading要干的事儿就是将同一时刻的请求合并。声明一个变量reqNum,每次调用startLoading方法 reqNum + 1。调用endLoading()方法,reqNum - 1。reqNum为 0 时,结束 loading。要合并一定延时的请求 我们可以加入一个延时。

3.请求拦截器

4.响应拦截器

5.提供方法api

git地址 https://github.com/caozhenhui/axios.git