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 相关文章推荐
SUN的《AJAX与J2EE》全文译了
Feb 23 Javascript
jscript之Read an Excel Spreadsheet
Jun 13 Javascript
javascript import css实例代码
Jul 18 Javascript
可在线编辑网页文字效果代码(单击)
Mar 02 Javascript
javascript中Array()数组函数详解
Aug 23 Javascript
jQuery实现的手机发送验证码倒计时效果代码分享
Aug 24 Javascript
基于HTML+CSS+JS实现增加删除修改tab导航特效代码
Aug 05 Javascript
jquery实现弹窗功能(窗口居中显示)
Feb 27 Javascript
Bootstrap Table 删除和批量删除
Sep 22 Javascript
JavaScript事件对象深入详解
Dec 30 Javascript
javascript中undefined的本质解析
Jul 31 Javascript
vue实现简易计算器功能
Jan 20 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
理解和运用PHP中的多态性[译]
2011/08/02 PHP
PHP可变函数学习小结
2015/11/29 PHP
thinkPHP分页功能实例详解
2017/05/05 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
图片连续滚动代码[兼容IE/firefox]
2009/06/11 Javascript
javascript 面向对象思想 附源码
2009/07/07 Javascript
使用JavaScript构建JSON格式字符串实现步骤
2013/03/22 Javascript
解决jquery中美元符号命名冲突问题
2014/01/08 Javascript
JS实现仿百度输入框自动匹配功能的示例代码
2014/02/19 Javascript
使用Node.js实现HTTP 206内容分片的教程
2015/06/23 Javascript
JS实现超精简响应鼠标显示二级菜单代码
2015/09/12 Javascript
js实现当鼠标移到表格上时显示这一格全部内容的代码
2016/06/12 Javascript
jquery对象和DOM对象的相互转换详解
2016/10/18 Javascript
JS常用加密编码与算法实例总结
2016/12/22 Javascript
addEventListener()与removeEventListener()解析
2017/04/20 Javascript
Vue学习笔记进阶篇之过渡状态详解
2017/07/14 Javascript
微信小程序实现多宫格抽奖活动
2020/04/15 Javascript
Javascript中JSON数据分组优化实践及JS操作JSON总结
2017/12/22 Javascript
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
2018/01/07 Javascript
vue轮播图插件vue-concise-slider的使用
2018/03/13 Javascript
node基于puppeteer模拟登录抓取页面的实现
2018/05/09 Javascript
jQuery实现侧边栏隐藏与显示的方法详解
2018/12/22 jQuery
微信小程序通过js实现瀑布流布局详解
2019/08/28 Javascript
2020淘宝618理想生活列车自动领喵币js脚本的代码
2020/06/02 Javascript
[02:49]2014DOTA2电竞也是体育项目! 势要把荣誉带回中国!
2014/07/20 DOTA
Python3标准库之functools管理函数的工具详解
2020/02/27 Python
Python新手学习函数默认参数设置
2020/06/03 Python
python和node.js生成当前时间戳的示例
2020/09/29 Python
Hotels.com台湾:饭店订房网
2017/09/06 全球购物
幸福家庭事迹材料
2014/02/03 职场文书
大学生个人先进事迹材料范文
2014/05/03 职场文书
新闻传播专业求职信
2014/07/22 职场文书
环境保护建议书
2014/08/26 职场文书
2014大学生中国梦主题教育学习思想汇报
2014/09/10 职场文书
办公用品质量保证书
2015/05/11 职场文书
MongoDB数据库的安装步骤
2021/06/18 MongoDB