当前位置: 首页 > news >正文

vue + elementui 全局Loading效果

注:在request请求和响应封装的文件里引入loading,发请求时打开loading,响应时关闭loading,这样每个接口调用时都会有loading效果

(1) 首先确保项目中安装了element-ui这个依赖包

npm i element-ui -S

(2)引入Loading

import { Loading } from 'element-ui'

(3)使用

let globalLoading   // 定义loading
 // 添加loading效果globalLoading = Loading.service({lock: true,text: '加载中…',background: 'rgba(0, 0, 0, 0.7)'})
globalLoading.close()  // 响应-关闭loading

完整代码如下:

import axios from 'axios'
import { Loading } from 'element-ui'
import { Notification } from 'element-ui'
import { getToken } from '@/utils/auth'// loading设置
let globalLoading// 创建axios实例
const service = axios.create({// axios中请求配置有baseURL选项,表示请求URL公共部分baseURL: process.env.VUE_APP_BASE_API,// 超时timeout: 30000
})
// request拦截器
service.interceptors.request.use(config => {// 请求加loadingglobalLoading = Loading.service({lock: true,text: '加载中…',background: 'rgba(0, 0, 0, 0.7)'})// 是否需要设置 tokenconst isToken = (config.headers || {}).isToken === falseif (getToken() && !isToken) {config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改}return config
}, error => {console.log(error)Promise.reject(error)
})// 响应拦截器
service.interceptors.response.use(res => {globalLoading.close()  // 响应-关闭loading// 未设置状态码则默认成功状态const code = res.data.code || 200;// 获取错误信息const msg = res.data.msgif(code==200 || code == 201 || code == 202 ){return res.data;} else if (code !== 200) {Notification.error({title: msg})return Promise.reject('error')} else {return res.data}},error => {console.log('err' + error)return Promise.reject(error)}
)export default service
http://www.lryc.cn/news/473544.html

相关文章:

  • 深度了解flink(十) JobManager(4) ResourceManager HA
  • 【万兴科技-注册_登录安全分析报告】
  • Android启动流程_Zygote阶段
  • 2022NOIP比赛总结
  • Leetcode 排序链表
  • 哈希函数简介
  • nginx------正向代理,反向代理生产,以及能否不使用代理详解
  • iptables限制docker端口禁止某台主机访问(使用DOCKER链和raw表的PREROUTING链)
  • 【VM实战】VMware迁移到VirtualBox
  • Android WebView加载不到cookie
  • c++qt
  • 零跑汽车嵌入式面试题汇总及参考答案
  • LC:贪心题解
  • ubuntu交叉编译dbus库给arm平台使用
  • ansible开局配置-openEuler
  • 连锁收银系统的优势与挑战
  • 轻型民用无人驾驶航空器安全操控理论培训知识总结-多旋翼部分
  • springboot092安康旅游网站的设计与实现(论文+源码)_kaic
  • 优化 Git 管理:提升协作效率的最佳实践20241030
  • Cocos使用精灵组件显示相机内容
  • AListFlutter(手机alist)——一键安装,可在手机/电视上运行并挂载各个网盘
  • 2024快手面试算法题-生气传染
  • 组织如何防御日益增加的 API 攻击面
  • 如何防止U盘盗取电脑数据?
  • python爬虫抓取豆瓣数据教程
  • Mybatis 注意传递多种参数,不一定都有参数值,用xml如何写出查询语句
  • 【Windows】Redis 部署
  • 【经典】Vue中this指向问题??
  • Oracle数据泵(expdp)导入导出数据
  • 得物App 3D球鞋博物馆亮相两博会,打造沉浸式消费新体验