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 相关文章推荐
jQuery的一些注意
Dec 06 Javascript
JQuery 网站换肤功能实现代码
Nov 02 Javascript
JS解析XML的实现代码
Nov 12 Javascript
客户端 使用XML DOM加载json数据的方法
Sep 28 Javascript
JS使用replace()方法和正则表达式进行字符串的搜索与替换实例
Apr 10 Javascript
JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件
Dec 20 Javascript
js 获取范围内的随机数实例代码
Aug 02 Javascript
JS实现动画兼容性的transition和transform实例分析
Dec 13 Javascript
vue中使用refs定位dom出现undefined的解决方法
Dec 21 Javascript
解决IE11 vue +webpack 项目中数据更新后页面没有刷新的问题
Sep 25 Javascript
js实现星星打分效果
Jul 05 Javascript
React列表栏及购物车组件使用详解
Jun 28 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 事务处理数据实现代码
2010/05/13 PHP
基于curl数据采集之正则处理函数get_matches的使用
2013/04/28 PHP
php制作文本式留言板
2015/03/18 PHP
保证JavaScript和Asp、Php等后端程序间传值编码统一
2009/04/17 Javascript
javascript 星级评分效果(手写)
2012/12/24 Javascript
百度移动版的url编码解码示例
2014/04/29 Javascript
javascript引用类型指针的工作方式
2015/04/13 Javascript
浅谈Javascript数组索引
2015/07/29 Javascript
JS判断当前页面是否在微信浏览器打开的方法
2015/12/08 Javascript
浅谈JS中逗号运算符的用法
2016/06/12 Javascript
js生成随机数(指定范围)的实例代码
2016/07/10 Javascript
深入学习Bootstrap表单
2016/12/13 Javascript
微信小程序 二维码canvas绘制实例详解
2017/01/06 Javascript
详解如何使用babel进行es6文件的编译
2018/05/29 Javascript
vue组件定义,全局、局部组件,配合模板及动态组件功能示例
2019/03/19 Javascript
基于Vue 撸一个指令实现拖拽功能
2019/10/09 Javascript
VUE中使用HTTP库Axios方法详解
2020/02/05 Javascript
python实现将pvr格式转换成pvr.ccz的方法
2015/04/28 Python
在Python中操作字典之setdefault()方法的使用
2015/05/21 Python
python numpy元素的区间查找方法
2018/11/14 Python
python通过tcp发送xml报文的方法
2018/12/28 Python
Python实现微信自动好友验证,自动回复,发送群聊链接方法
2019/02/21 Python
10款最佳Python开发工具推荐,每一款都是神器
2020/10/15 Python
加拿大时尚少女服装品牌:Garage
2016/10/10 全球购物
英国最大线上综合鞋类商城:Office
2017/12/08 全球购物
Lowe’s加拿大:家居装修、翻新和五金店
2019/12/06 全球购物
什么是servlet
2012/05/08 面试题
研究生毕业鉴定
2014/01/29 职场文书
电子信息工程专业推荐信
2014/02/14 职场文书
科技之星事迹材料
2014/06/02 职场文书
公司租车协议书
2015/01/29 职场文书
假如给我三天光明读书笔记
2015/06/26 职场文书
幼儿园奖惩制度范本
2015/08/05 职场文书
vue前端工程的搭建
2021/03/31 Vue.js
一文搞懂Golang 时间和日期相关函数
2021/12/06 Golang
java实现面板之间切换功能
2022/06/10 Java/Android