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对象的property和prototype是什么一种关系
Aug 06 Javascript
JavaScript中prototype为对象添加属性的误区介绍
Oct 15 Javascript
JavaScript?Apple设备检测示例代码
Nov 15 Javascript
jquery上传插件fineuploader上传文件使用方法(jquery图片上传插件)
Dec 05 Javascript
js正则表达式验证邮件地址
Nov 12 Javascript
微信小程序 switch组件详解及简单实例
Jan 10 Javascript
JavaScript数组_动力节点Java学院整理
Jun 26 Javascript
Validform验证时可以为空否则按照指定格式验证
Oct 20 Javascript
微信小程序实现复选框效果
Dec 28 Javascript
详解如何给React-Router添加路由页面切换时的过渡动画
Apr 25 Javascript
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
Sep 06 Javascript
vue解决花括号数据绑定不成功的问题
Oct 30 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中用memcached实现页面防刷新功能
2014/08/19 PHP
PHP中的output_buffering详细介绍
2014/09/27 PHP
PHP使用file_get_content设置头信息的方法
2016/02/14 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
2016/12/29 PHP
PHP实现获取第一个中文首字母并进行排序的方法
2017/05/09 PHP
PHP实现对xml的增删改查操作案例分析
2017/05/19 PHP
input、button的不同type值在ajax提交表单时导致的陷阱
2009/02/24 Javascript
如何将php数组或者对象传递给javascript
2014/03/20 Javascript
js 动态修改css文件的方法
2014/08/05 Javascript
jquery取子节点及当前节点属性值的方法
2014/09/09 Javascript
JavaScript中的包装对象介绍
2015/01/27 Javascript
JS动态日期时间的获取方法
2015/09/28 Javascript
Javascript基础回顾之(二) js作用域
2017/01/31 Javascript
浅谈jQuery框架Ajax常用选项
2017/07/08 jQuery
Javascript 严格模式use strict详解
2017/09/16 Javascript
pm2 部署 node的三种方法示例
2017/10/20 Javascript
Vue v2.5 调整和更新不完全问题
2017/10/24 Javascript
让你5分钟掌握9个JavaScript小技巧
2018/06/09 Javascript
Vue核心概念Getter的使用方法
2019/01/18 Javascript
Python中强大的命令行库click入门教程
2016/12/26 Python
Python网络编程基于多线程实现多用户全双工聊天功能示例
2018/04/10 Python
python切片及sys.argv[]用法详解
2018/05/25 Python
在flask中使用python-dotenv+flask-cli自定义命令(推荐)
2020/01/05 Python
python MultipartEncoder传输zip文件实例
2020/04/07 Python
详解Pandas 处理缺失值指令大全
2020/07/30 Python
美国最大的香水连锁店官网:Perfumania
2016/08/15 全球购物
一套Delphi的笔试题一
2016/02/14 面试题
中医药大学毕业生自荐信
2013/11/08 职场文书
行政专员工作职责
2013/12/22 职场文书
婚礼新郎父母答谢词
2014/01/16 职场文书
工地例会施工汇报材料
2014/08/22 职场文书
2015财务年度工作总结范文
2015/05/04 职场文书
写给女朋友的检讨书
2015/05/06 职场文书
职位证明模板
2015/06/23 职场文书
2016寒假假期总结
2015/10/10 职场文书
Java移除无效括号的方法实现
2021/08/07 Java/Android