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实现shift/ctrl/alt按键的获取
Apr 08 Javascript
JQuery EasyUI 数字格式化处理示例
May 05 Javascript
CSS javascript 结合实现悬浮固定菜单效果
Aug 23 Javascript
用JavaScript判断CSS浏览器类型前缀的两种方法
Oct 08 Javascript
解决js页面滚动效果scrollTop在FireFox与Chrome浏览器间的兼容问题的方法
Dec 03 Javascript
jquery mobile 移动web(5)
Dec 20 Javascript
快速掌握Node.js中setTimeout和setInterval的使用方法
Mar 21 Javascript
通过正则表达式获取url中参数的简单实现
Jun 07 Javascript
JavaScript实现DOM对象选择器
Sep 24 Javascript
JS设置随机出现2个数字的实例代码
Jul 19 Javascript
JS实现商城秒杀倒计时功能(动态设置秒杀时间)
Dec 12 Javascript
jQuery实现小火箭返回顶部特效
Feb 03 jQuery
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
PHP mb_convert_encoding 获取字符串编码类型实现代码
2009/04/26 PHP
Ajax实时验证用户名/邮箱等是否已经存在的代码打包
2011/12/01 PHP
PHP JSON出错:Cannot use object of type stdClass as array解决方法
2014/08/16 PHP
PHP学习笔记(三):数据类型转换与常量介绍
2015/04/17 PHP
Zend Framework教程之资源(Resources)用法实例详解
2016/03/14 PHP
[原创]php使用curl判断网页404(不存在)的方法
2016/06/23 PHP
javascript 避免闭包引发的问题
2009/03/17 Javascript
JavaScript中伪协议 javascript:使用探讨
2014/07/18 Javascript
jquery实现select下拉框美化特效代码分享
2015/08/18 Javascript
javascript基本语法
2016/05/31 Javascript
JavaScript函数中关于valueOf和toString的理解
2016/06/14 Javascript
浅谈jquery采用attr修改form表单enctype不起作用的问题
2016/11/25 Javascript
js+html5实现页面可刷新的倒计时效果
2017/07/15 Javascript
SeaJS中use函数用法实例分析
2017/10/10 Javascript
JavaScript中正则表达式使数字、中文或指定字符高亮显示
2017/10/31 Javascript
Element-ui自定义table表头、修改列标题样式、添加tooltip、:render-header使用
2019/04/11 Javascript
解决vue中使用proxy配置不同端口和ip接口问题
2019/08/14 Javascript
angular inputNumber指令输入框只能输入数字的实现
2019/12/03 Javascript
JavaScript实现旋转木马轮播图
2020/03/16 Javascript
小程序实现图片移动缩放效果
2020/05/26 Javascript
python socket多线程通讯实例分析(聊天室)
2016/04/06 Python
Python 查看文件的编码格式方法
2017/12/21 Python
浅谈pyqt5中信号与槽的认识
2019/02/17 Python
python 批量添加的button 使用同一点击事件的方法
2019/07/17 Python
Python 动态导入对象,importlib.import_module()的使用方法
2019/08/28 Python
python yield关键词案例测试
2019/10/15 Python
pygame实现俄罗斯方块游戏(AI篇1)
2019/10/29 Python
Python模块的定义,模块的导入,__name__用法实例分析
2020/01/07 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
2020/09/23 Python
python 求两个向量的顺时针夹角操作
2021/03/04 Python
一道写SQL的面试题和答案
2013/11/19 面试题
科研先进个人典型材料
2014/01/31 职场文书
电话客服专员岗位职责
2014/06/28 职场文书
合伙经营协议书范本
2014/09/13 职场文书
奖学金个人总结
2015/03/04 职场文书
Android基础入门之dataBinding的简单使用教程
2022/06/21 Java/Android