vue 全局封装loading加载教程(全局监听)


Posted in Javascript onNovember 05, 2020

前言:

为了页面美观,请求接口的时候延迟没有数据,页面感觉狠卡顿,封装loading,请求接口成功后隐藏掉(我这是用的vant 组件根据自己情况进行改变)。

第一步:

建立loading.vue

<template>
 <div class="loading">
 <van-loading size="36px" vertical>加载中...</van-loading>
 </div>
</template>

<script>
export default {
 props: {},
 data() {
 return {};
 },
 computed: {},
 created() {},
 mounted() {},
};
</script>

<style scoped>
</style>

第二步:

app.vue引入 增加开关

vue 全局封装loading加载教程(全局监听)

vue 全局封装loading加载教程(全局监听)

代码:

<loading v-show="isLoading"></loading>
import { mapState } from "vuex";
import loading from "./components/loading";

 computed: {
 ...mapState(["isLoading"])
 },
 components: {
 loading
 },

//css
.loading {
 width: 100%;
 height: 100%;
 left: 0;
 top: 0;
 position: fixed;
 padding-top: 5.333333rem;
}

第三步:

vuex 保存状态

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)

const store = new Vuex.Store({
 state: {
 isLoading: false//loading全局开关
 },
 mutations: {
 changeisLoading(state, data) {
 state.isLoading = data
 }
 },
})
export default store

第四步:

监听接口状态,全局改变isLoading状态(main.js引入或者自己在引入一个js)

// 请求拦截器
axios.interceptors.request.use(
 config => {
 // 改变vuex中的isLoading状态数据,当为true,loading显示
 store.state.isLoading = true
 return config;
 },
 error => {
 return Promise.error(error);
 }
);

// 响应拦截器
axios.interceptors.response.use(
 response => {
 // 如果返回的状态码为200,说明接口请求成功,可以正常拿到数据
 // 否则的话抛出错误
 if (response.status === 200) {
 //loading隐藏
 store.state.isLoading = false
 return Promise.resolve(response);
 } else {
 return Promise.reject(response);
 }
 },
 error => {
 if (error.response.status) {
 return Promise.reject(error.response);
 }
 }
);

OK 封装完成!

补充知识:vue-cli4 APP热更新失效不可以及时更新

前言

项目中遇到问题,热更新失效,不能每次及时提醒,百度了很多方法,效果不是狠显著,后来发现webpack4.0需要手动配置开启热更新,默认没有开启

解决办法

一,安装依赖webpack-dev-server

根据自己的情况安装npm / cnpm

npm install --save-dev webpack-dev-server / cnpm install --save-dev webpack-dev-server

二,配置vue.config.js文件

由于vue-cli4文件夹和之前有很大的出入 所以要在vue.config.js配置相关参数,增加devServer的配置

devServer: {
 compress: true,
 disableHostCheck: true, //webpack4.0 开启热更新
 }

位置如下图展示

vue 全局封装loading加载教程(全局监听)

三,配置package.json文件

在package.json中的scripts对象添加命令,开启本地服务

"serve": "vue-cli-service serve && webpack-dev-server --open"

位置如下图展示

vue 全局封装loading加载教程(全局监听)

四,重启

最后执行npm run server然后重新进行打包,热更新失效问题解决

以上这篇vue 全局封装loading加载教程(全局监听)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Js从头学起(基本数据类型和引用类型的参数传递详细分析)
Feb 16 Javascript
js控制网页背景音乐播放与停止的方法
Feb 06 Javascript
bootstrap网格系统使用方法解析
Jan 13 Javascript
AngularJS路由实现页面跳转实例
Mar 03 Javascript
JS文件/图片从电脑里面拖拽到浏览器上传文件/图片
Mar 08 Javascript
微信扫码支付零云插件版实例详解
Apr 26 Javascript
详解webpack + react + react-router 如何实现懒加载
Nov 20 Javascript
vue-cli 如何打包上线的方法示例
May 08 Javascript
angular6 填坑之sdk的方法
Dec 27 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
May 16 Javascript
在layer弹层layer.prompt中,修改placeholder的实现方法
Sep 27 Javascript
通过vue刷新左侧菜单栏操作
Aug 06 Javascript
vant组件中 dialog的确认按钮的回调事件操作
Nov 04 #Javascript
Array.filter中如何正确使用Async
Nov 04 #Javascript
JavaScript setTimeout()基本用法有哪些
Nov 04 #Javascript
vant-ui组件调用Dialog弹窗异步关闭操作
Nov 04 #Javascript
通过实例了解Render Props回调地狱解决方案
Nov 04 #Javascript
vant中的toast层级改变操作
Nov 04 #Javascript
vant中的toast轻提示实现代码
Nov 04 #Javascript
You might like
JAVA/JSP学习系列之六
2006/10/09 PHP
实用PHP会员权限控制实现原理分析
2011/05/29 PHP
PHP实现单例模式最安全的做法
2014/06/13 PHP
CI框架简单邮件发送类实例
2016/05/18 PHP
PHP 数组遍历foreach语法结构及实例
2016/06/13 PHP
php array_multisort 对数组进行排序详解及实例代码
2016/10/27 PHP
laravel 修改记住我功能的cookie保存时间的方法
2019/10/14 PHP
PJ Blog修改-禁止复制的代码和方法
2006/10/25 Javascript
详解JavaScript中undefined与null的区别
2014/03/29 Javascript
js中函数调用的两种常用方法使用介绍
2014/07/17 Javascript
JS获取当前网页大小以及屏幕分辨率等
2014/09/05 Javascript
为JS扩展Array.prototype.indexOf引发的问题及解决办法
2015/01/21 Javascript
信息滚动效果的实例讲解
2017/09/18 Javascript
基于vue.js 2.x的虚拟滚动条的示例代码
2018/01/23 Javascript
AngularJS标签页tab选项卡切换功能经典实例详解
2018/05/16 Javascript
JS数组求和的常用方法实例小结
2019/01/07 Javascript
基于iview的router常用控制方式
2019/05/30 Javascript
Vue项目中Api的组织和返回数据处理的操作
2019/11/04 Javascript
[01:58]2018DOTA2亚洲邀请赛趣味视频——交流
2018/04/03 DOTA
[40:29]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第一场
2018/04/10 DOTA
python 获取et和excel的版本号
2009/04/09 Python
离线安装Pyecharts的步骤以及依赖包流程
2020/04/23 Python
Django中Model的使用方法教程
2018/03/07 Python
JavaScript实现一维数组转化为二维数组
2018/04/17 Python
Python中使用Counter进行字典创建以及key数量统计的方法
2018/07/06 Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
2019/01/08 Python
在pyqt5中QLineEdit里面的内容回车发送的实例
2019/06/21 Python
python实现图片中文字分割效果
2019/07/22 Python
Python3.7实现验证码登录方式代码实例
2020/02/14 Python
全球最大运动品牌的男装、女装和童装官方库存商:A&A Sports
2021/01/17 全球购物
自荐信怎么写好
2013/11/11 职场文书
优秀乡村医生先进事迹材料
2014/08/23 职场文书
四风问题自我剖析材料
2014/10/07 职场文书
那些美到让人窒息的诗句,值得你收藏!
2019/08/20 职场文书
Apache POI的基本使用详解
2021/11/07 Servers
Nginx防盗链与服务优化配置的全过程
2022/01/18 Servers