< axios封装篇 :一文看懂Axios + ElementUi 配置全局遮罩loading >

在这里插入图片描述

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组件跳转对应步骤 >

🔥 < CSDN周赛解析:第 28 期 >

🔥 < elementUi 组件插件: el-table表格拖拽修改列宽及行高 及 使用注意事项 >

🔥 < 每日小技巧:N个很棒的 Vue 开发技巧, 持续记录ing >

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术宅小温

你小小的鼓励,是我搬砖的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值