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 相关文章推荐
一些常用的JS功能函数(2009-06-04更新)
Jun 04 Javascript
JavaScript中使用构造函数实现继承的代码
Aug 12 Javascript
关于JavaScript中var声明变量作用域的推断
Dec 16 Javascript
jquery1.5.1中根据元素ID获取元素对象的代码
Apr 02 Javascript
解析javascript 实用函数的使用详解
May 10 Javascript
使用js判断当前时区TimeZone是否是夏令时
Feb 23 Javascript
控制文字内容的显示与隐藏示例
Jun 11 Javascript
JS使用for循环遍历Table的所有单元格内容
Aug 21 Javascript
javascript实现类似百度分享功能的方法
Jul 27 Javascript
jquery实现的动态回到顶部特效代码
Oct 28 Javascript
Jquery日历插件制作简单日历
Oct 28 Javascript
jquery点击切换背景色的简单实例
Aug 25 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环境无法上传文件的解决方法
2014/04/30 PHP
PHP使用Pthread实现的多线程操作实例
2015/11/14 PHP
今天你说520了吗?不仅有php表白书还有java表白神器
2016/05/20 PHP
记录一次排查PHP脚本执行卡住的问题
2016/12/27 PHP
escape、encodeURI、encodeURIComponent等方法的区别比较
2006/12/27 Javascript
jquery select(列表)的操作(取值/赋值)
2009/08/06 Javascript
jquery中dom操作和事件的实例学习 下拉框应用
2011/12/01 Javascript
基于jQuery+JSON的省市二三级联动效果
2015/06/05 Javascript
基于jquery实现瀑布流布局
2020/06/28 Javascript
javascript实现下拉提示选择框
2015/12/29 Javascript
JavaScript是如何实现继承的(六种方式)
2016/03/31 Javascript
JavaScript中的跨浏览器事件操作的基本方法整理
2016/05/20 Javascript
Bootstrap 网站实例之单页营销网站
2016/10/20 Javascript
jQuery对table表格进行增删改查
2020/12/22 Javascript
基于JavaScript实现窗口拖动效果
2017/01/18 Javascript
javascript中json对象json数组json字符串互转及取值方法
2017/04/19 Javascript
微信小程序 生命周期函数详解
2017/05/24 Javascript
Express使用html模板的详细代码
2017/09/18 Javascript
详解element-ui级联菜单(城市三级联动菜单)和回显问题
2019/10/02 Javascript
小程序实现按下录音松开识别语音
2019/11/22 Javascript
[00:21]DOTA2亚洲邀请赛 Logo演绎
2015/02/07 DOTA
Python中尝试多线程编程的一个简明例子
2015/04/07 Python
详解python的ORM中Pony用法
2018/02/09 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
2019/08/12 Python
Python 通过截图匹配原图中的位置(opencv)实例
2019/08/27 Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
2020/02/28 Python
Python如何使用bokeh包和geojson数据绘制地图
2020/03/21 Python
Django ORM判断查询结果是否为空,判断django中的orm为空实例
2020/07/09 Python
Python测试框架:pytest学习笔记
2020/10/20 Python
儿媳婚宴答谢词
2014/01/14 职场文书
2015年民主生活会发言材料
2014/12/15 职场文书
运动会表扬稿
2015/01/16 职场文书
工作保证书
2015/01/17 职场文书
道歉信范文
2015/05/12 职场文书
linux中nohup和后台运行进程查看及终止
2021/06/24 Python
Python绘画好看的星空图
2022/03/17 Python