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 相关文章推荐
js 刷新页面的代码小结 推荐
Apr 02 Javascript
jQuery1.3.2 升级到jQuery1.4.4需要修改的地方
Jan 06 Javascript
js confirm()方法的使用方法实例
Jul 13 Javascript
jQuery实现按键盘方向键翻页特效
Mar 18 Javascript
javascript实现全局匹配并替换的方法
Apr 27 Javascript
javascript解决IE6下hover问题的方法
Jul 28 Javascript
jQuery3.0中的buildFragment私有函数详解
Aug 16 Javascript
Django+Vue.js搭建前后端分离项目的示例
Aug 07 Javascript
在vue项目中使用Nprogress.js进度条的方法
Jan 31 Javascript
RxJS的入门指引和初步应用
Jun 15 Javascript
vue实现codemirror代码编辑器中的SQL代码格式化功能
Aug 27 Javascript
AI小程序之语音听写来了,十分钟掌握百度大脑语音听写全攻略
Mar 13 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下通过伪造http头破解防盗链的代码
2010/07/03 PHP
PHP使用CURL实现对带有验证码的网站进行模拟登录的方法
2014/07/23 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
php 删除一维数组中某一个值元素的操作方法
2018/02/01 PHP
laravel http 自定义公共验证和响应的方法
2019/09/29 PHP
javascript学习(二)javascript常见问题总结
2013/01/02 Javascript
js判断两个日期是否相等的方法
2013/09/10 Javascript
JS+CSS实现淡入式焦点图片幻灯切换效果的方法
2015/02/26 Javascript
JavaScript判断是否为数字的4种方法及效率比较
2015/04/01 Javascript
vue复合组件实现注册表单功能
2017/11/06 Javascript
详解如何使用PM2将Node.js的集群变得更加容易
2017/11/15 Javascript
AngularJs 最新验证手机号码的实例,成功测试通过
2017/11/26 Javascript
详解使用vue-cli脚手架初始化Vue项目下的项目结构
2018/03/08 Javascript
解决Nodejs全局安装模块后找不到命令的问题
2018/05/15 NodeJs
微信小程序实现简单表格
2019/02/14 Javascript
vue接入腾讯防水墙代码
2019/05/07 Javascript
js回文数的4种判断方法示例
2019/06/04 Javascript
React中获取数据的3种方法及优缺点
2020/02/18 Javascript
[03:16]DOTA2完美大师赛小组赛精彩集锦
2017/11/22 DOTA
[43:32]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
python为tornado添加recaptcha验证码功能
2014/02/26 Python
深入理解Python中装饰器的用法
2016/06/28 Python
python互斥锁、加锁、同步机制、异步通信知识总结
2018/02/11 Python
快速解决docker-py api版本不兼容的问题
2019/08/30 Python
解决Python发送Http请求时,中文乱码的问题
2020/04/30 Python
银行会计财务工作个人的自我评价
2013/10/29 职场文书
前台文员的岗位职责
2013/11/14 职场文书
企业法人代表任命书
2014/06/06 职场文书
公积金贷款承诺书
2015/04/30 职场文书
优秀家长事迹材料(2016推荐版)
2016/02/29 职场文书
高中英语教学反思范文
2016/03/02 职场文书
2016年清明节网上祭英烈活动总结
2016/04/01 职场文书
担保书怎么写 ?
2019/04/22 职场文书
Python基础之操作MySQL数据库
2021/05/06 Python
厉害!这是Redis可视化工具最全的横向评测
2021/07/15 Redis
HTML中link标签属性的具体用法
2023/05/07 HTML / CSS