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下用层来实现select的title提示属性
Feb 23 Javascript
使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码
Dec 30 Javascript
jQuery判断元素是否是隐藏的代码
Apr 24 Javascript
零基础搭建Node.js、Express、Ejs、Mongodb服务器及应用开发入门
Dec 20 Javascript
以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题
Nov 13 Javascript
jquery判断输入密码两次是否相等
Apr 22 Javascript
JS判断图片是否加载完成方法汇总(最新版)
May 13 Javascript
babel基本使用详解
Feb 17 Javascript
JavaScript中最常用的10种代码简写技巧总结
Jun 28 Javascript
JavaScript 有用的代码片段和 trick
Feb 22 Javascript
微信小程序冒泡事件及其阻止方法实例分析
Dec 06 Javascript
在vue中通过render函数给子组件设置ref操作
Nov 17 Vue.js
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
构建简单的Webmail系统
2006/10/09 PHP
php+ajax实现图片文件上传功能实例
2014/06/17 PHP
Zend Framework教程之请求对象的封装Zend_Controller_Request实例详解
2016/03/07 PHP
PHP如何将XML转成数组
2016/04/04 PHP
PHP结合Ueditor并修改图片上传路径
2016/10/16 PHP
遍历echsop的region表形成缓存的程序实例代码
2016/11/01 PHP
thinkPHP5.0框架自动加载机制分析
2017/03/18 PHP
传智播客学习之java 反射
2009/11/22 Javascript
js网页版计算器的简单实现
2013/07/02 Javascript
js为数字添加逗号并格式化数字的代码
2013/08/23 Javascript
javascript内置对象arguments详解
2014/03/16 Javascript
JS中取二维数组中最大值的方法汇总
2016/04/17 Javascript
总结十个Angular.js由浅入深的面试问题
2016/08/26 Javascript
jquery实现提示语淡入效果
2017/05/05 jQuery
JavaScript中一些特殊的字符运算
2017/08/17 Javascript
JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法
2017/09/21 Javascript
微信小程序scroll-view实现滚动穿透和阻止滚动的方法
2018/08/20 Javascript
vuex 解决报错this.$store.commit is not a function的方法
2018/12/17 Javascript
Vue的click事件防抖和节流处理详解
2019/11/13 Javascript
python基础教程之实现石头剪刀布游戏示例
2014/02/11 Python
Python 12306抢火车票脚本 Python京东抢手机脚本
2018/02/06 Python
python 基于TCP协议的套接字编程详解
2019/06/29 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
2019/08/28 Python
python双向链表原理与实现方法详解
2019/12/03 Python
python实现图像高斯金字塔的示例代码
2020/12/11 Python
DBA数据库管理员JAVA程序员架构师必看
2016/02/07 面试题
廉洁家庭事迹材料
2014/05/15 职场文书
助理政工师申报材料
2014/06/03 职场文书
我的梦想演讲稿500字
2014/08/21 职场文书
党的群众路线教育实践活动对照检查剖析材料
2014/10/09 职场文书
初中毕业生自我评价
2015/03/02 职场文书
2015年社区综治工作总结
2015/04/21 职场文书
2016党员干部廉政准则学习心得体会
2016/01/20 职场文书
受欢迎的自荐信,就这么写!
2019/04/19 职场文书
如何让vue长列表快速加载
2021/03/29 Vue.js
漫改真人电影「萌系男友是燃燃的橘色」公开先导视觉图
2022/03/21 日漫