当前位置: 代码网 > it编程>编程语言>Javascript > element ui loading加载开启与关闭方式

element ui loading加载开启与关闭方式

2024年09月05日 Javascript 我要评论
element ui loading加载开启与关闭我们在使用element ui loading加载组件的服务方式的时候想要在请求开始之前开启组件,请求成功或者失败时关闭组件,官网上是在一个方法里面写

element ui loading加载开启与关闭

我们在使用element ui loading加载组件的服务方式的时候想要在请求开始之前开启组件,请求成功或者失败时关闭组件,官网上是在一个方法里面写着开启与关闭,所以我们可以做一个小小的封装;

 //loading加载
      openfullscreen() {
        const loading = this.$loading({
          lock: true,
          text: 'loading',
          spinner: 'el-icon-loading',
          background: 'rgba(0, 0, 0, 0.7)'
        });
        return loading;
      }

这里我们在开启loading的同时,返回loading;

 closefullscreen(loading){
        loading.close();
 },

关闭时接受开启返回的loading;

//开启
this.openfullscreen();
//vue框架 axios请求
 this.$http.post("url").then(res => {
	//请求成功关闭;
    this.closefullscreen(this.openfullscreen());
 }).catch(()=>{
  	//请求失败关闭;
    this.closefullscreen(this.openfullscreen());
 })

封装完的使用;

使用element ui的loading组件

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);
});

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com