优雅使用 Element-UI 的 Loading 组件
element
A Vue.js 2.0 UI Toolkit for Web
项目地址:https://gitcode.com/gh_mirrors/eleme/element
免费下载资源
·
背景
Element-UI 提供了 Loading 组件,通过对于这个组件进行一些处理,我们能做到在发送请求的时候进行 loading 操作
实现
先写一个 loading.js 文件:
import { Loading } from 'element-ui';
let loadingCount = 0;
let loading;
const startLoading = () => {
loading = Loading.service({
lock: true,
text: '加载中……',
background: 'rgba(0, 0, 0, 0.7)'
});
};
const endLoading = () => {
loading.close();
};
export const showLoading = () => {
if (loadingCount === 0) {
startLoading();
}
loadingCount += 1;
};
export const hideLoading = () => {
if (loadingCount <= 0) {
return;
}
loadingCount -= 1;
if (loadingCount === 0) {
endLoading();
}
};
再在 axios 的 interceptor 中调用:
// ...
import { showLoading, hideLoading } from './loading';
/* 请求拦截器(请求之前的操作) */
ajax.interceptors.request.use((req) => {
showLoading();
return req;
}, err => Promise.reject(err));
/* 请求之后的操作 */
ajax.interceptors.response.use((res) => {
hideLoading();
return res;
return Promise.reject(res);
}, (err) => {
hideLoading();
return Promise.reject(err);
});
作者:最尾一名
链接:https://www.jianshu.com/p/95ec2286bc6d
来源:简书
GitHub 加速计划 / eleme / element
54.06 K
14.63 K
下载
A Vue.js 2.0 UI Toolkit for Web
最近提交(Master分支:3 个月前 )
c345bb45
7 个月前
a07f3a59
* Update transition.md
* Update table.md
* Update transition.md
* Update table.md
* Update transition.md
* Update table.md
* Update table.md
* Update transition.md
* Update popover.md 7 个月前
更多推荐
已为社区贡献3条内容
所有评论(0)