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 相关文章推荐
IE和FireFox(FF)中js和css的不同
Apr 13 Javascript
js 居中漂浮广告
Mar 21 Javascript
SOSO地图JS画出标注和中心点以html形式运行
Aug 09 Javascript
再JavaScript的jQuery库中编写动画效果的指南
Aug 13 Javascript
详解MVC如何使用开源分页插件(shenniu.pager.js)
Dec 16 Javascript
angularjs中使用ng-bind-html和ng-include的实例
Apr 28 Javascript
Javascript实现一个简单的输入关键字添加标签效果实例
Jun 01 Javascript
vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)
Aug 04 Javascript
vue与TypeScript集成配置最简教程(推荐)
Oct 17 Javascript
详解VS Code使用之Vue工程配置format代码格式化
Mar 20 Javascript
js实现简单扫雷
Nov 27 Javascript
three.js显示中文字体与tween应用详析
Jan 04 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
让CodeIgniter的ellipsize()支持中文截断的方法
2014/06/12 PHP
Thinkphp实现自动验证和自动完成
2015/12/19 PHP
PHP开发之用微信远程遥控服务器
2018/01/25 PHP
php7函数,声明,返回值等新特性介绍
2018/05/25 PHP
PHP获取HTTP body内容的方法
2018/12/31 PHP
javascript cookies 设置、读取、删除实例代码
2010/04/12 Javascript
JavaScript 高级篇之闭包、模拟类,继承(五)
2012/04/07 Javascript
js与jquery获取父元素,删除子元素的两种不同方法
2014/01/09 Javascript
父节点获取子节点的字符串示例代码
2014/02/26 Javascript
浅谈javascript函数式编程
2015/09/06 Javascript
Javascript函数式编程简单介绍
2015/10/11 Javascript
jQuery点击改变class并toggle及toggleClass()方法定义用法
2015/12/11 Javascript
谈一谈jQuery核心架构设计
2016/03/28 Javascript
jQuery控制文本框只能输入数字和字母及使用方法
2016/05/26 Javascript
仅9张思维导图帮你轻松学习Javascript 就这么简单
2016/06/01 Javascript
jQuery+Pdo编写login登陆界面
2016/08/01 Javascript
基于cookie实现zTree树刷新后展开状态不变
2017/02/28 Javascript
jQuery判断邮箱格式对错实例代码讲解
2017/04/12 jQuery
vue.js之vue-cli脚手架的搭建详解
2017/05/05 Javascript
Node.js Event Loop各阶段讲解
2019/03/08 Javascript
vue 移动端记录页面浏览位置的方法
2020/03/11 Javascript
python基础教程之序列详解
2014/08/29 Python
python实现Floyd算法
2018/01/03 Python
用python爬取租房网站信息的代码
2018/12/14 Python
windows下搭建python scrapy爬虫框架步骤
2018/12/23 Python
Python3从零开始搭建一个语音对话机器人的实现
2019/08/23 Python
利用Python脚本实现自动刷网课
2020/02/03 Python
Java Spring项目国际化(i18n)详细方法与实例
2020/03/20 Python
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步骤详解
2020/11/02 Python
SQL里面IN比较快还是EXISTS比较快
2012/07/19 面试题
论文评语大全
2014/04/29 职场文书
机关党建工作汇报材料
2014/08/20 职场文书
教师个人总结范文
2015/02/11 职场文书
英文慰问信
2015/02/14 职场文书
2015年重阳节活动总结
2015/03/24 职场文书
java如何实现socket连接方法封装
2021/09/25 Java/Android