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 相关文章推荐
让低版本浏览器支持input的placeholder属性(js方法)
Apr 03 Javascript
用js控制组织结构图可以任意拖拽到指定位置
Jan 17 Javascript
详解javascript数组去重问题
Nov 06 Javascript
angularjs自定义ng-model标签的属性
Jan 21 Javascript
JS显示日历和天气的方法
Mar 01 Javascript
JavaScript通过改变文字透明度实现的文字闪烁效果实例
Apr 27 Javascript
浅谈webpack 构建性能优化策略小结
Jun 13 Javascript
vue-cli脚手架的安装教程图解
Sep 02 Javascript
jQuery基于随机数解决中午吃什么去哪吃问题示例
Dec 29 jQuery
微信小程序实现锚点功能
Nov 20 Javascript
vue+elementUI组件table实现前端分页功能
Nov 15 Javascript
vue路由实现登录拦截
Mar 24 Vue.js
详解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
如何把php5.3版本升级到php5.4或者php5.5
2015/07/31 PHP
PHP实现微信小程序人脸识别刷脸登录功能
2018/05/24 PHP
asp函数split()对应php函数explode()
2019/02/27 PHP
jQuery 点击图片跳转上一张或下一张功能的实现代码
2010/03/12 Javascript
javascript一个无懈可击的实例化XMLHttpRequest的方法
2010/10/13 Javascript
javascript显示用户停留时间的简单实例
2013/08/05 Javascript
javascript实现切换td中的值
2014/12/05 Javascript
Jquery中$.post和$.ajax的用法小结
2015/04/28 Javascript
jquery图片滚动放大代码分享(1)
2015/08/25 Javascript
js实现有过渡渐变效果的图片轮播相册(兼容IE,ff)
2016/01/19 Javascript
javascript学习指南之回调问题
2016/04/23 Javascript
js判断主流浏览器类型和版本号的简单实现代码
2016/05/26 Javascript
jQuery表单验证插件解析(推荐)
2016/07/21 Javascript
微信公众号-获取用户信息(网页授权获取)实现步骤
2016/10/21 Javascript
JQuery Dialog对话框 不能通过Esc关闭的原因分析及解决办法
2017/01/18 Javascript
jQuery的三种bind/One/Live/On事件绑定使用方法
2017/02/23 Javascript
JS/jquery实现一个网页内同时调用多个倒计时的方法
2017/04/27 jQuery
vue.js项目nginx部署教程
2018/04/05 Javascript
vue+elementui 对话框取消 表单验证重置示例
2019/10/29 Javascript
在Python中操作文件之seek()方法的使用教程
2015/05/24 Python
python中文件变化监控示例(watchdog)
2017/10/16 Python
Python使用flask框架操作sqlite3的两种方式
2018/01/31 Python
pycharm设置注释颜色的方法
2018/05/23 Python
Python中实现单例模式的n种方式和原理
2018/11/14 Python
关于tf.nn.dynamic_rnn返回值详解
2020/01/20 Python
Django admin 实现search_fields精确查询实例
2020/03/30 Python
如何利用Python动态模拟太阳系运转
2020/09/04 Python
python中的unittest框架实例详解
2021/02/05 Python
非常震撼的纯CSS3人物行走动画
2016/02/24 HTML / CSS
日本非常有名的内衣丝袜品牌:GUNZE
2017/01/06 全球购物
中东奢侈品市场:Coveti
2019/05/12 全球购物
个人剖析材料范文
2014/09/30 职场文书
2015年安全生产责任书
2015/01/30 职场文书
起诉书格式范文
2015/05/20 职场文书
教师考核鉴定意见
2015/06/05 职场文书
【海涛DOTA解说】EVE女子战队独家录像加ZSMJ神牛两连发
2022/04/01 DOTA