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 相关文章推荐
JavaScript 继承详解(二)
Jul 13 Javascript
csdn 论坛技术区平均给分功能
Nov 07 Javascript
js获取location.href的参数实例代码
Aug 02 Javascript
js原型链与继承解析(初体验)
May 09 Javascript
JS控制页面跳转时未请求要跳转的地址怎么回事
Oct 14 Javascript
vue轮播图插件vue-awesome-swiper的使用代码实例
Jul 10 Javascript
Angular5中调用第三方库及jQuery的添加的方法
Jun 07 jQuery
详解Vue中使用Echarts的两种方式
Jul 03 Javascript
Vue与Node.js通过socket.io通信的示例代码
Jul 25 Javascript
使用validate.js实现表单数据提交前的验证方法
Sep 04 Javascript
浅谈KOA2 Restful方式路由初探
Mar 14 Javascript
Vue检测屏幕变化来改变不同的charts样式实例
Oct 26 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
PHP XML操作的各种方法解析(比较详细)
2010/06/17 PHP
php设计模式 Command(命令模式)
2011/06/26 PHP
php随机生成数字字母组合的方法
2015/03/18 PHP
PHP实现WebService的简单示例和实现步骤
2015/03/27 PHP
PHP简单实现文本计数器的方法
2016/04/28 PHP
thinkphp3.2中实现phpexcel导出带生成图片示例
2017/02/14 PHP
javascript:以前写的xmlhttp池,代码
2008/05/18 Javascript
javascript Array.remove() 数组删除
2009/08/06 Javascript
Mootools 1.2教程 滑动效果(Slide)
2009/09/15 Javascript
分享10篇优秀的jQuery幻灯片制作教程及应用案例
2011/04/16 Javascript
js的[defer]和[async]属性
2014/11/24 Javascript
浅谈javascript中this在事件中的应用
2015/02/15 Javascript
js实现简单的验证码
2015/12/25 Javascript
微信js-sdk预览图片接口及从拍照或手机相册中选图接口用法示例
2016/10/13 Javascript
Vue源码中要const _toStr = Object.prototype.toString的原因分析
2018/12/09 Javascript
JavaScript函数的4种调用方法实例分析
2019/03/05 Javascript
Vue全局使用less样式,组件使用全局样式文件中定义的变量操作
2020/10/21 Javascript
Python中os和shutil模块实用方法集锦
2014/05/13 Python
pandas string转dataframe的方法
2018/04/11 Python
关于Numpy数据类型对象(dtype)使用详解
2019/11/27 Python
Python enumerate内置库用法解析
2020/02/24 Python
Django 构建模板form表单的两种方法
2020/06/14 Python
python speech模块的使用方法
2020/09/09 Python
PyCharm Ctrl+Shift+F 失灵的简单有效解决操作
2021/01/15 Python
韩国现代百货官网:Hmall
2018/03/21 全球购物
博士生求职信
2014/07/06 职场文书
大专学生求职自荐信
2014/07/06 职场文书
社会发展项目建议书
2014/08/25 职场文书
机关领导查摆四风思想汇报
2014/09/13 职场文书
生活小常识广播稿
2014/09/16 职场文书
2014年政工师工作总结
2014/12/18 职场文书
第一节英语课开场白
2015/06/01 职场文书
2015年暑假生活总结
2015/07/13 职场文书
感恩主题班会教案
2015/08/12 职场文书
2019商业计划书格式、范文
2019/04/24 职场文书
导游词之太原天龙山
2020/01/02 职场文书