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优化效率 提升性能解决方案
Sep 06 Javascript
深入理解Javascript中的循环优化
Nov 09 Javascript
js实现鼠标感应向下滑动隐藏菜单的方法
Feb 20 Javascript
在JavaScript中使用开平方根的sqrt()方法
Jun 15 Javascript
Labelauty?jQuery单选框/复选框美化插件分享
Sep 26 Javascript
Node.js实用代码段之正确拼接Buffer
Mar 17 Javascript
JavaScript程序中的流程控制语句用法总结
May 23 Javascript
JavaScript中apply方法的应用技巧小结
Sep 29 Javascript
jQuery中get方法用法分析
Dec 07 Javascript
jQuery EasyUI 组件加上“清除”功能实例详解
Apr 11 jQuery
bootstrap datetimepicker控件位置异常的解决方法
Nov 23 Javascript
vue+echarts实现动态绘制图表及异步加载数据的方法
Oct 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
如何将一个表单同时提交到两个地方处理
2006/10/09 PHP
ajax返回值中有回车换行、空格的解决方法分享
2013/10/24 PHP
一个基于phpQuery的php通用采集类分享
2014/04/09 PHP
phpword插件导出word文件时中文乱码问题处理方案
2014/08/19 PHP
php等比例缩放图片及剪切图片代码分享
2016/02/13 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
2018/05/11 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
2019/04/30 PHP
Laravel+Intervention实现上传图片功能示例
2019/07/09 PHP
PHP 命名空间和自动加载原理与用法实例分析
2020/04/29 PHP
WebGame《逆转裁判》完整版 代码下载(1月24日更新)
2007/01/29 Javascript
Node.js编码规范
2014/07/14 Javascript
node.js中的fs.fsync方法使用说明
2014/12/15 Javascript
jQuery表格的维护和删除操作
2017/02/03 Javascript
基于bootstrap实现收缩导航条
2017/03/17 Javascript
JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍
2018/03/01 Javascript
使用vue-router切换页面时,获取上一页url以及当前页面url的方法
2019/05/06 Javascript
jQuery实现全选、反选和不选功能的方法详解
2019/12/04 jQuery
VUE UPLOAD 通过ACTION返回上传结果操作
2020/09/07 Javascript
Python爬取读者并制作成PDF
2015/03/10 Python
Python DataFrame.groupby()聚合函数,分组级运算
2018/09/18 Python
python 两个数据库postgresql对比
2019/10/21 Python
解决tensorflow/keras时出现数组维度不匹配问题
2020/06/29 Python
贝玲妃英国官网:Benefit英国
2018/02/03 全球购物
HttpServlet类中的主要方法都有哪些?各自的作用是什么?
2014/03/16 面试题
职业技术学校毕业生推荐信
2013/12/03 职场文书
如何写一份好的自荐信
2014/01/02 职场文书
水利学院求职自荐书
2014/02/01 职场文书
人事专员岗位职责
2015/02/03 职场文书
2015年入党决心书
2015/02/05 职场文书
美术教师个人工作总结
2015/02/06 职场文书
美丽心灵观后感
2015/06/01 职场文书
七年级语文教学反思
2016/03/03 职场文书
职场新人刚入职工作总结该怎么写?
2019/05/15 职场文书
nginx实现发布静态资源的方法
2021/03/31 Servers
nginx配置proxy_pass中url末尾带/与不带/的区别详解
2021/03/31 Servers
Vue3.0中Ref与Reactive的区别示例详析
2021/07/07 Vue.js