Vue基于vuex、axios拦截器实现loading效果及axios的安装配置


Posted in Javascript onApril 26, 2019

准备

  • 利用vue-cli脚手架创建项目
  • 进入项目安装vuex、axios(npm install vuex,npm install axios)

axios配置

项目中安装axios模块(npm install axios)完成后,进行以下配置:

main.js

//引入axios
import Axios from 'axios'
//修改原型链,全局使用axios,这样之后可在每个组件的methods中调用$axios命令完成数据请求
Vue.prototype.$axios=Axios

loading组件

我这里就选择使用iview提供的loading组件,

npm install iview

main.js
import iView from 'iview';
import 'iview/dist/styles/iview.css';
Vue.use(iView);

安装引入后,将loading写成一个组件loading.vue

Vue基于vuex、axios拦截器实现loading效果及axios的安装配置

Vuex state状态设置控制loading的显隐

store.js(Vuex)

export const store = new Vuex.Store({
  state:{
    isShow:false
  }
})

在state中定义isShow属性,默认false隐藏

v-if="this.$store.state.isShow"

为loading组件添加v-if绑定state中的isShow

组件使用axios请求数据

<button @click="getData">请求数据</button>
methods:{
    getData(){
      this.$axios.get('https://www.apiopen.top/journalismApi')
      .then(res=>{
        console.log(res)//返回请求的结果
      })
      .catch(err=>{
        console.log(err)
      })
    }
  }

我这里使用一个按钮进行触发事件,利用get请求网上随便找的一个api接口,.then中返回请求的整个结果(不仅仅包括数据)

Axios拦截器配置

main.js

//定义一个请求拦截器
Axios.interceptors.request.use(function(config){
 store.state.isShow=true; //在请求发出之前进行一些操作
 return config
})
//定义一个响应拦截器
Axios.interceptors.response.use(function(config){
 store.state.isShow=false;//在这里对返回的数据进行处理
 return config
})

分别定义一个请求拦截器(请求开始时执行某些操作)、响应拦截器(接受到数据后执行某些操作),之间分别设置拦截时执行的操作,改变state内isShow的布尔值从而控制loading组件在触发请求数据开始时显示loading,返回数据时隐藏loading

特别注意:这里有一个语法坑(我可是来来回回踩了不少次)main.js中调取、操作vuex state中的数据不同于组件中的this.$store.state,而是直接store.state 同上面代码

效果展示

Vue基于vuex、axios拦截器实现loading效果及axios的安装配置

Vue基于vuex、axios拦截器实现loading效果及axios的安装配置

总结

以上所述是小编给大家介绍的Vue基于vuex、axios拦截器实现loading效果及axios的安装配置,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
javascript实现的像java、c#之类的sleep暂停的函数代码
Mar 04 Javascript
在VS2008中使用jQuery智能感应的方法
Dec 30 Javascript
javascript获得服务器端控件的ID的实现代码
Dec 28 Javascript
javascript学习笔记(八) js内置对象
Jun 19 Javascript
window.open以post方式将内容提交到新窗口
Dec 26 Javascript
javascript实现确定和取消提示框效果
Jul 10 Javascript
举例讲解JavaScript中将数组元素转换为字符串的方法
Oct 25 Javascript
更高效的使用JQuery 这里总结了8个小技巧
Apr 13 Javascript
微信小程序项目总结之点赞 删除列表 分享功能
Jun 25 Javascript
JSON是什么?有哪些优点?JSON和XML的区别?
Apr 29 Javascript
JS获取表格视图所选行号的ids过程解析
Feb 21 Javascript
Vue select 绑定动态变量的实例讲解
Oct 22 Javascript
详解auto-vue-file:一个自动创建vue组件的包
Apr 26 #Javascript
vue组件间的参数传递实例详解
Apr 26 #Javascript
详解VUE前端按钮权限控制
Apr 26 #Javascript
微信小程序开发之点击按钮退出小程序的实现方法
Apr 26 #Javascript
js最实用string(字符串)类型的使用及截取与拼接详解
Apr 26 #Javascript
微信小程序实现的绘制table表格功能示例
Apr 26 #Javascript
Vue使用Canvas绘制图片、矩形、线条、文字,下载图片
Apr 26 #Javascript
You might like
php 表单数据的获取代码
2009/03/10 PHP
PHP 中执行排序与 MySQL 中排序
2009/04/21 PHP
php守护进程 加linux命令nohup实现任务每秒执行一次
2011/07/04 PHP
PHP使用trim函数去除字符串左右空格及特殊字符实例
2016/01/07 PHP
Fleaphp常见函数功能与用法示例
2016/11/15 PHP
Javascript 构造函数 实例分析
2008/11/26 Javascript
JS 自动安装exe程序
2008/11/30 Javascript
js onload事件不起作用示例分析
2013/10/09 Javascript
JS实现带缓冲效果打开、关闭、移动一个层的方法
2015/05/09 Javascript
jquery+css实现的红色线条横向二级菜单效果
2015/08/22 Javascript
全面解析Bootstrap布局组件应用
2016/02/22 Javascript
js基本算法:冒泡排序,二分查找的简单实例
2016/10/08 Javascript
js实现弹窗居中的简单实例
2016/10/09 Javascript
详解Vue 事件驱动和依赖追踪
2017/04/22 Javascript
AngularJS  ng-repeat遍历输出的用法
2017/06/19 Javascript
vue.js提交按钮时进行简单的if判断表达式详解
2018/08/08 Javascript
vue项目中使用多选框的实例代码
2020/07/22 Javascript
python 接口_从协议到抽象基类详解
2017/08/24 Python
Python探索之实现一个简单的HTTP服务器
2017/10/28 Python
wtfPython—Python中一组有趣微妙的代码【收藏】
2018/08/31 Python
Python清空文件并替换内容的实例
2018/10/22 Python
python训练数据时打乱训练数据与标签的两种方法小结
2018/11/08 Python
Python Tornado核心及相关原理详解
2020/06/24 Python
tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)
2020/06/30 Python
python+requests接口自动化框架的实现
2020/08/31 Python
python温度转换华氏温度实现代码
2020/12/06 Python
伦敦一家西班牙童装精品店:La Coqueta
2018/02/02 全球购物
Otticanet美国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
北京RT科技有限公司.net工程师面试题
2013/02/15 面试题
一些Solaris面试题
2013/03/22 面试题
UNIX文件系统常用命令
2012/05/25 面试题
汽车运用工程毕业生自荐信
2013/10/29 职场文书
新年寄语大全
2014/04/12 职场文书
投资建议书模板
2014/05/12 职场文书
小学一年级数学教学计划
2015/01/20 职场文书
员工工作表扬信
2015/05/05 职场文书