vue全局使用axios的方法实例详解


Posted in Javascript onNovember 22, 2018

在vue项目开发中,我们使用axios进行ajax请求,很多人一开始使用axios的方式,会当成vue-resoure的使用方式来用,即在主入口文件引入import VueResource from 'vue-resource'之后,直接使用Vue.use(VueResource)之后即可将该插件全局引用了,所以axios这样使用的时候就报错了,很懵逼。

仔细看看文档,就知道axios 是一个基于 promise 的 HTTP 库,axios并没有install 方法,所以是不能使用vue.use()方法的。☞查看vue插件

那么难道我们要在每个文件都要来引用一次axios吗?多繁琐!!!解决方法有很多种:

1.结合 vue-axios使用
2.axios 改写为 Vue 的原型属性
3.结合 Vuex的action

1.结合 vue-axios使用

看了vue-axios的源码,它是按照vue插件的方式去写的。那么结合vue-axios,就可以去使用vue.use方法了

首先在主入口文件main.js中引用:

import axios from 'axios'
import VueAxios from 'vue-axios'

Vue.use(VueAxios,axios);

之后就可以使用了,在组件文件中的methods里去使用了:

getNewsList(){
   this.axios.get('api/getNewsList').then((response)=>{
    this.newsList=response.data.data;
   }).catch((response)=>{
    console.log(response);
   })
}

2.axios 改写为 Vue 的原型属性(不推荐这样用)

首先在主入口文件main.js中引用,之后挂在vue的原型链上:

import axios from 'axios'
Vue.prototype.$ajax= axios

在组件中使用:

this.$ajax.get('api/getNewsList')
.then((response)=>{
  this.newsList=response.data.data;
}).catch((response)=>{
  console.log(response);
})

3.结合 Vuex的action

在vuex的仓库文件store.js中引用,使用action添加方法

import Vue from 'Vue'
import Vuex from 'vuex'

import axios from 'axios'

Vue.use(Vuex)
const store = new Vuex.Store({
 // 定义状态
 state: {
  user: {
   name: 'xiaoming'
  }
 },
 actions: {
  // 封装一个 ajax 方法
  login (context) {
   axios({
    method: 'post',
    url: '/user',
    data: context.state.user
   })
  }
 }
})

export default store

在组件中发送请求的时候,需要使用 this.$store.dispatch

methods: {
 submitForm () {
  this.$store.dispatch('login')
 }
}

总结

以上所述是小编给大家介绍的vue全局使用axios的方法实例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jquery如何把参数列严格转换成数组实现思路
Apr 01 Javascript
jsp+javascript打造级连菜单的实例代码
Jun 14 Javascript
JS获取鼠标选中的文字
Aug 10 Javascript
AngularJS入门教程之表单校验用法示例
Nov 02 Javascript
JavaScript 深层克隆对象详解及实例
Nov 03 Javascript
bootstrap选项卡使用方法解析
Jan 11 Javascript
JavaScript实现的select点菜功能示例
Jan 16 Javascript
require.js与bootstrap结合实现简单的页面登录和页面跳转功能
May 12 Javascript
vue-cli2.9.3 详细教程
Apr 23 Javascript
为什么Vue3.0使用Proxy实现数据监听(defineProperty表示不背这个锅)
Oct 14 Javascript
js抽奖转盘实现方法分析
May 16 Javascript
vue-cli —— 如何局部修改Element样式
Oct 22 Javascript
vue中的ref和$refs的使用
Nov 22 #Javascript
浅析vue 函数配置项watch及函数 $watch 源码分享
Nov 22 #Javascript
原生JS实现手动轮播图效果实例代码
Nov 22 #Javascript
js实现按钮开关单机下拉菜单效果
Nov 22 #Javascript
vue+node实现图片上传及预览的示例方法
Nov 22 #Javascript
微信上传视频文件提示(推荐)
Nov 22 #Javascript
vue-cli3.0如何使用CDN区分开发、生产、预发布环境
Nov 22 #Javascript
You might like
PHP获取用户访问IP地址的5种方法
2016/05/16 PHP
PHP如何读取由JavaScript设置的Cookie
2017/03/22 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解
2019/06/03 PHP
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(上:事件篇)
2010/03/24 Javascript
细说浏览器特性检测(2)-通用事件检测
2010/11/05 Javascript
jQuery动态添加的元素绑定事件处理函数代码
2011/08/02 Javascript
JavaScript语言核心数据类型和变量使用介绍
2013/08/23 Javascript
js获取url参数代码实例分享(JS操作URL)
2013/12/13 Javascript
Jquery实现点击按钮,连续地向textarea中添加值的实例代码
2014/03/08 Javascript
PHP守护进程实例
2015/03/06 Javascript
jQuery实现Div拖动+键盘控制综合效果的方法
2015/03/10 Javascript
jQuery实现简单的日期输入格式化控件
2015/03/12 Javascript
微信 java 实现js-sdk 图片上传下载完整流程
2016/10/21 Javascript
微信小程序开发之视频播放器 Video 弹幕 弹幕颜色自定义实例
2016/12/08 Javascript
解决Angular.Js与Django标签冲突的方案
2016/12/20 Javascript
深入理解vue-loader如何使用
2017/06/06 Javascript
bootstrap table表格客户端分页实例
2017/08/07 Javascript
javascript流程控制语句集合
2017/09/18 Javascript
解决option标签selected="selected"属性失效的问题
2017/11/06 Javascript
[58:37]Serenity vs Fnatic 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
利用Psyco提升Python运行速度
2014/12/24 Python
用Python计算三角函数之acos()方法的使用
2015/05/15 Python
自动化Nginx服务器的反向代理的配置方法
2015/06/28 Python
linux平台使用Python制作BT种子并获取BT种子信息的方法
2017/01/20 Python
对python中for、if、while的区别与比较方法
2018/06/25 Python
python实现多层感知器
2019/01/18 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
2019/07/30 Python
使用Numpy对特征中的异常值进行替换及条件替换方式
2020/06/08 Python
Bata印度官网:源自欧洲舒适鞋履品牌
2020/01/30 全球购物
*p++ 自增p 还是p所指向的变量
2016/07/16 面试题
实习生的自我评价
2014/01/08 职场文书
党员学习正风肃纪思想汇报
2014/09/12 职场文书
毕业论文致谢范文
2015/05/14 职场文书
《称赞》教学反思
2016/02/17 职场文书
简单聊聊Vue中的计算属性和属性侦听
2021/10/05 Vue.js