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之文件操作
Mar 07 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
Oct 21 Javascript
利用jquery实现下拉框的禁用与启用
Dec 07 Javascript
JS异步加载的三种实现方式
Mar 16 Javascript
JavaScript累加、迭代、穷举、递归等常用算法实例小结
May 08 Javascript
基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能
May 16 Javascript
vuejs简单验证码功能完整示例
Jan 08 Javascript
vue项目中自定义video视频控制条的实现代码
Apr 26 Javascript
vue+element-ui表格封装tag标签使用插槽
Jun 18 Javascript
JS倒计时两种实现方式代码实例
Jul 27 Javascript
Vuex实现购物车小功能
Aug 17 Javascript
ant design的table组件实现全选功能以及自定义分页
Nov 17 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
深入了解php4(2)--重访过去
2006/10/09 PHP
从wamp到xampp的升级之路
2015/04/08 PHP
PHP代码实现表单数据验证类
2015/07/28 PHP
浅谈Laravel中的一个后期静态绑定
2017/08/11 PHP
PHP Swoole异步读取、写入文件操作示例
2019/10/24 PHP
用jQuery简化JavaScript开发分析
2009/02/19 Javascript
Jquery的hide及toggle方法让超链接慢慢消失
2013/09/06 Javascript
关闭ie窗口清除Session的解决方法
2014/01/10 Javascript
javascript判断是否按回车键并解决浏览器之间的差异
2014/05/13 Javascript
jQuery实现点击该行即可删除HTML表格行
2014/10/17 Javascript
jQuery表格行上移下移和置顶的实现方法
2015/10/08 Javascript
利用JS判断鼠标移入元素的方向
2016/12/11 Javascript
jQuery实现用户输入自动完成功能
2017/02/13 Javascript
微信小程序使用image组件显示图片的方法【附源码下载】
2017/12/08 Javascript
Angular实现下拉框模糊查询功能示例
2018/01/03 Javascript
微信小程序实现动态显示和隐藏某个控件功能示例
2018/12/14 Javascript
vue2.0 如何在hash模式下实现微信分享
2019/01/22 Javascript
利用JavaScript的Map提升性能的方法详解
2019/08/14 Javascript
Jquery 获取相同NAME 或者id删除行操作
2020/08/24 jQuery
js禁止查看源文件屏蔽Ctrl+u/s、F12、右键等兼容IE火狐chrome
2020/10/01 Javascript
python统计cpu利用率的方法
2015/06/02 Python
python数据结构之图深度优先和广度优先实例详解
2015/07/08 Python
Python用户推荐系统曼哈顿算法实现完整代码
2017/12/01 Python
Python面向对象类的继承实例详解
2018/06/27 Python
Python 保存加载mat格式文件的示例代码
2020/08/04 Python
巧用CSS3 border实现图片遮罩效果代码
2012/04/09 HTML / CSS
canvas像素点操作之视频绿幕抠图
2018/09/11 HTML / CSS
美国在线眼镜商城:Eyeglasses.com
2017/06/26 全球购物
北京某科技有限公司C# .net笔试题
2014/09/27 面试题
财务出纳员岗位职责
2013/11/26 职场文书
实习生的自我评价
2014/01/08 职场文书
保洁公司服务承诺书
2014/05/28 职场文书
督导岗位职责范本
2015/04/10 职场文书
2016猴年春节慰问信
2015/11/30 职场文书
《和时间赛跑》读后感3篇
2019/12/16 职场文书
实操Python爬取觅知网素材图片示例
2021/11/27 Python