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 高效运行代码分析
Mar 18 Javascript
改善用户体验的五款jQuery插件分享
May 22 Javascript
Javascript实现滑块滑动改变值的实现代码
Apr 12 Javascript
JavaScript将字符串转换为整数的方法
Apr 14 Javascript
轻松学习jQuery插件EasyUI EasyUI实现树形网络基本操作(2)
Nov 30 Javascript
JS实现登录页面记住密码和enter键登录方法推荐
May 10 Javascript
JavaScript结合Bootstrap仿微信后台多图文界面管理
Jul 22 Javascript
JS中DOM元素的attribute与property属性示例详解
Sep 04 Javascript
mpvue中使用flyjs全局拦截的实现代码
Sep 13 Javascript
angularjs http与后台交互的实现示例
Dec 21 Javascript
JavaScript设计模式之代理模式实例分析
Jan 16 Javascript
layer弹出层自适应高度,垂直水平居中的实现
Sep 16 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
sae使用smarty模板的方法
2013/12/17 PHP
php中strstr、strrchr、substr、stristr四个函数的区别总结
2014/09/22 PHP
php获取根域名方法汇总
2014/10/28 PHP
php连接mysql数据库
2017/03/21 PHP
非常不错的一个javascript 类
2006/11/07 Javascript
Open and Print a Word Document
2007/06/15 Javascript
你必须知道的Javascript知识点之&quot;this指针&quot;的应用
2013/04/23 Javascript
浅析JavaScript中的类型和对象
2013/11/29 Javascript
js 获取时间间隔实现代码
2014/05/12 Javascript
javascript中setAttribute()函数使用方法及兼容性
2015/07/19 Javascript
跟我学习javascript的浮点数精度
2015/11/16 Javascript
很棒的Bootstrap选项卡切换效果
2016/07/01 Javascript
Ionic2系列之使用DeepLinker实现指定页面URL
2016/11/21 Javascript
react+redux的升级版todoList的实现
2017/12/18 Javascript
小程序实现左右来回滚动字幕效果
2018/12/28 Javascript
微信小程序(订阅消息)功能
2019/10/25 Javascript
JavaScript canvas动画实现时钟效果
2020/02/10 Javascript
nuxt+axios实现打包后动态修改请求地址的方法
2020/04/22 Javascript
Python脚本判断 Linux 是否运行在虚拟机上
2015/04/25 Python
python实现网站的模拟登录
2016/01/04 Python
python字典改变value值方法总结
2019/06/21 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
2019/07/03 Python
Python绘制频率分布直方图的示例
2019/07/08 Python
Python彻底删除文件夹及其子文件方式
2019/12/23 Python
浅谈python锁与死锁问题
2020/08/14 Python
HTML5 Canvas的常用线条属性值总结
2016/03/17 HTML / CSS
2014年迎新年联欢会活动策划方案
2014/02/26 职场文书
企业总经理助理岗位职责
2014/09/12 职场文书
2015年妇联工作总结范文
2015/04/22 职场文书
农村婚庆主持词
2015/06/29 职场文书
小学运动会报道稿
2015/07/22 职场文书
高三毕业感言
2015/07/30 职场文书
python状态机transitions库详解
2021/06/02 Python
Java 语言中Object 类和System 类详解
2021/07/07 Java/Android
深入浅出讲解Java8函数式编程
2022/01/18 Java/Android
golang生成并解析JSON
2022/04/14 Golang