最近遇到需求:

  全局加载loading,所有接口都要可以手动控制是否展示加载等待的功能

当拿到这个需求的时候我是拒绝的,因为我以及局部写好了0.0,这是要大改呀....,没办法老板的要求,只能硬着头皮改了;老规矩先去百度一下广大开发的思路,我发现好多开发是直接写在拦截器内的,在拦截器内调用element ui的loading方法,在接口请求的时候开始启动加载loading,在接口返回和接口报错抛异常的时候关闭loading,............嗯......不错不错.我要了

我在大家的思路上稍微改动了一下,因为和我的需求有一点不同,我们的需求是可以手动控制是否展示加载等待的功能,既然是手动控制那么肯定不能直接在拦截器里面才开始调用loading方法了,往前推一步,在调接口的时候就开始控制是否启用loading方法,如果需要这么操作的话我们就需要手动封装axios的调用,还好我有先见之明,以前开发的时候就封装了axios下面给大家看一下我的代码:

import request from '@/utils/PFT_request'---------拦截器
import { showLoading } from '@/utils/loading'------加载等待开启方法
url:接口api,
data:参数
dom:html中的class或id传参时需要加'./#',因为loading会用到js的querySelector属性方法,次属性用于区分加载等待是整个页面加载等待还是局部某一块dom的加载等待---非必传,默认整个页面加载等待
bool:区分是否开启加载等待----非必传,默认开启加载等待
可以看到图片中我封装了多个类型的axios,因为并不是所有请求都需要加载等待,例如get请求,我们公司get请求默认get请求是加载一些初始数据的,这些数据是不需要给客户看到的如果也有加载等待的话,体验就不好了;
我只在post内加了这么多参数用于区分是否需要加载等待及全局和局部加载等待,另外axiosDownload请求是文件流类型,属于比较特殊请求,区分出来便于开发中的数据处理,这一部分基本上全部都需要加载等待,因为我们要告诉客户,您的数据正在下载请求数据
 
请求前的方法我们处理好了,请求后,返回的方法和网上的差不多都是返回结果时结束
我们来处理掉一些干扰元素直接看拦截器的本质内容

这么一看就清晰多了,拦截器的原理就是在发起请求的时候拦截一次,在返回的时候再拦截一次,我们在拦截器拦截前就已经处理了加载等待了,我们请求时就不需要再调用加载等待了,我们只需要在返回拦截时去调用结束加载等待即可,如下图:

下面我们在看看关键的加载等待的方法,这个方法网上都有,我这边基本上也是借用网上大神的方法,不过时间有点久,忘记是哪位大神的代码了,我这边贴不了原地址大佬的代码,希望那位大佬看到不会生气0.0

方法到这里基本上就结束了全局加载等待

 
 本文出自于https://www.cnblogs.com/sws-kevin/p/14237428.html 转载请注明出处,否则会追究。

vue-element-admin 全局loading加载等待的更多相关文章

  1. 使用Dialog实现全局Loading加载框

    Dialog实现全局Loading加载框 很多人在实现Loading加载框的时候,都是在当前的页面隐藏一个Loading布局,需要加载的时候,显示出来,加载完再隐藏 使用Dialog实现Loading ...

  2. vue+elementUI+axios实现的全局loading加载动画

    在项目中,很多时候都需要loading加载动画来缓解用户的焦虑等待,比如说,我打开了一个页面,而这个页面有很多接口请求,但浏览器的请求并发数就那么几个,再加上如果网速不行的话,那么这时候,用户很可能就 ...

  3. [Swift通天遁地]一、超级工具-(11)使用EZLoadingActivity制作Loading加载等待动画

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  4. js+css实现全局loading加载

    js var Mask = function() { //定义一个Mask对象 this.btn = ["取消", "确定"], this.init = fun ...

  5. vue问题八:动态加载loading、浏览器图标

    全局动态加载loading: 参考文档:https://blog.csdn.net/qq_34825875/article/details/79570301 在main.js或者index.js引用  ...

  6. vue2 自定义全局组件(Loading加载效果)

    vue2 自定义全局组件(Loading加载效果) github地址: https://github.com/ccyinghua/custom-global-component 一.构建项目 vue ...

  7. vue axios配置 发起请求加载loading请求结束关闭loading

    axios带有请求拦截器,避免在每个请求里面加loading重复操作,可以封装进去,在请求开始时加载loading层,请求结束关闭,loading层用vux的loading加载 axios.js im ...

  8. WPF加载等待动画

    原文:WPF加载等待动画 原文地址:https://www.codeproject.com/Articles/57984/WPF-Loading-Wait-Adorner 界面遮罩 <UserC ...

  9. vue实现menu菜单懒加载

    本文将在vue+element ui项目中简单实现menu菜单的懒加载. 最近接到这样的需求:菜单的选项不要固定的,而是下一级菜单选项需要根据上级菜单调接口来获取.what? 这不就是懒加载吗?翻了一 ...

随机推荐

  1. ssrf解题记录

    ssrf解题记录 最近工作需要做一些Web的代码审计,而我Web方面还比较薄弱,决定通过一些ctf的题目打打审计基础,练练思维,在博客上准备开几个专题专门记录刷题的过程. pwn题最近做的也很少,也要 ...

  2. Oracle数据泵导入的时候创建索引是否会使用并行?

    一.疑问,Oracle数据泵导入的时候创建索引是否会使用并行? 某客户需要使用数据泵进行迁移,客户咨询导入的时间能不能加快一点. 那么如何加快导入的速度呢? 多加一些并行,那么创建索引内部的索引并行度 ...

  3. STM32—驱动BT-06蓝牙模块传输数据

    文章目录 BT-06简介 数据透传 配置串口 USART1初始化函数 USART2初始化函数 USART2的NVIC配置 USART1串口重映射 BT-06简介 BT06蓝牙模块是专为智能无线数据传输 ...

  4. STM32—IIC通信(软件实现底层函数)

    使用GPIO引脚模拟SDA和SCL总线实现软件模拟IIC通信,IIC的具体通信协议层和物理层链接:IIC #ifndef __BSP_IIC_H #define __BSP_IIC_H #includ ...

  5. Docker源码安装附内网镜像安装演示

    Docker源码安装附内网镜像安装演示 系统版本要求 当前系统版本:CentOS Linux release 7.9.2009 (Core) 内核版本:3.10.0-1160.el7.x86_64 注 ...

  6. Rabbit-用户上线接收消息

    application-dev.yml spring: rabbitmq: username: admin password: admin host: 192.168.0.45 port: 5672 ...

  7. explorer.exe

    explorer.exe是Windows程序管理器或者文件资源管理器, 它用于管理Windows图形壳,包括桌面和文件管理,删除该程序会导致Windows图形界面无法使用. 终止: taskkill ...

  8. .NET Core 新特性:发布单文件可执行程序

    一.前言 .NET Core 3.0中新增加了一个特性:Publishing Single EXEs,可以通过dotnet publish 命令将整个.net core应用发布为一个可执行文件. 二. ...

  9. C# 中await前后执行线程的问题

     悬赏园豆:20 [已解决问题] 浏览: 1763次 解决于 2018-08-15 22:43  今天有点疑惑就写了个测试的代码,发现控制台和Winform中不一样 比如: 控制台: ...Main( ...

  10. 从元素抽取属性,文本和HTML

    问题 在解析获得一个Document实例对象,并查找到一些元素之后,你希望取得在这些元素中的数据. 方法 要取得一个属性的值,可以使用Node.attr(String key) 方法 对于一个元素中的 ...