vue js axios统一拦截导出,全局显示 loading 加载
PS=> 整体逻辑: request 请求文件单独引入 element-ui 的 loading 组件,通过 request 和 response 拦截器进行针对性拦截即可
先插入 element-ui 的 loading 插件
import { Loading } from "element-ui";
特别注释:request 文件需要单独引入,不能通过 main.js 全局加载引入,会抛出异常找不到这个 element-ui 的组件
然后,需要全局写一个变量。例如:
let/var loadingInstance;
特别注释:这里不能用 const 常量,因为用了 const 常量就得赋值。建议用 let/var
之后需要分别在request拦截器 和 response拦截器 加入 loading ,即可实现全局 loading 加载
PS:发送之后加入loading
// request拦截器 service.interceptors.request.use( (config) => { if (config.responseType === "blob") { //这里的条件可以自行更改成自己需要的条件 console.log("显示loading"); loadingInstance = Loading.service({ lock: true, //lock的修改符--默认是false text: "拼命加载中...", //显示在加载图标下方的加载文案 spinner: "el-icon-loading", //自定义加载图标类名 background: "rgba(0, 0, 0, 0.7)", //遮罩层颜色 }); } return config; }, (error) => { Promise.reject(error); } );
PS:返回之前关闭loading
// 响应拦截器 service.interceptors.response.use( (res) => { if (res.request.responseType == "blob") { //这里可以自行更改成需要自己的条件 loadingInstance.close(); return res.data; } }, (error) => { return Promise.reject(error); } );
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术