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 相关文章推荐
csdn 批量接受好友邀请
Feb 19 Javascript
cloudgamer出品ImageZoom 图片放大效果
Apr 01 Javascript
url参数中有+、空格、=、%、&amp;、#等特殊符号的问题解决
May 15 Javascript
javaScript 动态访问JSon元素示例代码
Aug 30 Javascript
JavaScript中的splice方法用法详解
Jul 20 Javascript
SelecT下拉框选中和取值的解决方法
Nov 22 Javascript
JavaScript中for循环的几种写法与效率总结
Feb 03 Javascript
JS解决移动web开发手机输入框弹出的问题
Mar 31 Javascript
解决vue2.0路由跳转未匹配相应用路由避免出现空白页面的问题
Aug 24 Javascript
微信小程序调用微信支付接口的实现方法
Apr 29 Javascript
JS document form表单元素操作完整示例
Jan 13 Javascript
vue-video-player视频播放器使用配置详解
Oct 23 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
咖啡磨器 如何选购一台适合家用的意式磨豆机
2021/03/05 新手入门
php 保留小数点
2009/04/21 PHP
phpmyadmin导入(import)文件限制的解决办法
2009/12/11 PHP
php查看当前Session的ID实例
2015/03/16 PHP
6个超实用的PHP代码片段
2015/08/10 PHP
php简单处理XML数据的方法示例
2017/05/19 PHP
JQuery为页面Dom元素绑定事件及解除绑定方法
2014/04/23 Javascript
用javascript关闭本窗口不弹出询问框的方法
2014/09/12 Javascript
分享经典的JavaScript开发技巧
2015/11/21 Javascript
javascript编程异常处理实例小结
2015/11/30 Javascript
Bootstrap Paginator分页插件与ajax相结合实现动态无刷新分页效果
2016/05/27 Javascript
js html css实现复选框全选与反选
2016/10/09 Javascript
jQuery事件对象总结
2016/10/17 Javascript
基于JavaScript实现自动更新倒计时效果
2016/12/19 Javascript
vue中实现滚动加载更多的示例
2017/11/08 Javascript
vue引用外部JS的两种种方法
2020/01/28 Javascript
JS removeAttribute()方法实现删除元素的某个属性
2021/01/11 Javascript
[05:05]第三天的dota2
2013/07/29 DOTA
Python中的列表生成式与生成器学习教程
2016/03/13 Python
python回调函数中使用多线程的方法
2017/12/25 Python
基于Python实现扑克牌面试题
2019/12/11 Python
解决python使用list()时总是报错的问题
2020/05/05 Python
基于Python 的语音重采样函数解析
2020/07/06 Python
python中_del_还原数据的方法
2020/12/09 Python
IE支持HTML5的解决方法
2009/10/20 HTML / CSS
德国古洛迷亚百货官网:GALERIA Kaufhof
2017/06/20 全球购物
CAT鞋美国官网:CAT Footwear
2017/11/27 全球购物
大学生求职简历的自我评价
2013/10/21 职场文书
机械工程师的岗位职责
2013/11/17 职场文书
如何写一份好的自荐信
2014/01/02 职场文书
秋冬农业生产标语
2014/10/09 职场文书
2015年社区统计工作总结
2015/04/21 职场文书
门球健将观后感
2015/06/16 职场文书
教师节祝酒词
2015/08/11 职场文书
关于Mybatis中SQL节点的深入解析
2022/03/19 Java/Android
mysql sock 文件解析及作用讲解
2022/07/15 MySQL