< axios封装篇 :一文看懂Axios + ElementUi 配置全局遮罩loading >
今天这篇文章,主要是用于补充上次的 axios封装 相关文章,用于补充全局配置接口遮罩!下面我们开始今天的内容吧 ! !!
·
axios封装篇 :一文看懂axios配置全局遮罩loading
今天这篇文章,主要是用于补充上次的 axios封装相关文章,用于补充全局配置接口遮罩!
下面我们开始今天的内容吧 ! !!
👉 实现原理
通过配置 Axios封装
的拦截器,在请求前去匹配 loading
配置文件中,判断是否需要进行全局遮罩。引入 elementUi 组件库
中,loading函数式
使用遮罩。
👉 Axios封装
// 引入elementUi 及 loading 配置文件
import ElementUI from "element-ui";
import loadingOption from './loadingOption.js'
> loading配置文件
// 配置需要在请求时,启用全局loading的接口路径, 不配置默认不开启,避免重复loading
import { API_PATH } from "@/config";
// 以下代表需要遮罩的接口地址
const loadingOption = {
[API_PATH + '/rule/update']: true,
[API_PATH + '/rule/add']: true,
[API_PATH + '/knowledge/add']: true,
...
};
export default loadingOption;
> axios封装文件
const http = ['get', 'head', 'delete'].includes(type)
? axios[type](url, {...config, params: data})
: axios[type](url, data, config)
let loading = ''
// 匹配需要遮罩的接口
loadingOption[url] && (() => {
loading = ElementUI.Loading.service({
lock: true,
text: '拼命加载中...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
})()
http.then(function (res) {
...
if (socket) return
processData(res, cache, storage, resolve, reject)
}).catch(function (res) {
...
reject(res)
}).finally(() => {
loadingOption[url] && (() => {
loading.close();
})()
})
往期内容 💨
🔥 < elementUI组件样式及功能补全: 实现点击steps组件跳转对应步骤 >
更多推荐
已为社区贡献2条内容
所有评论(0)