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 相关文章推荐
javascript 字符 Escape,encodeURI,encodeURIComponent
Jul 09 Javascript
学习JS面向对象成果 借国庆发布个最新作品与大家交流
Oct 03 Javascript
Ajax+Json 级联菜单实现代码
Oct 27 Javascript
js控制淡入淡出示例代码
Nov 12 Javascript
Node.js中AES加密和其它语言不一致问题解决办法
Mar 10 Javascript
JavaScript检测浏览器cookie是否已经启动的方法
Feb 27 Javascript
JavaScript Math.round() 方法
Dec 18 Javascript
jquery拖拽效果完整实例(附demo源码下载)
Jan 14 Javascript
jQuery实现调整表格单列顺序完整实例
Jun 20 Javascript
EL表达式截取字符串的函数说明
Sep 22 Javascript
小程序自定义导航栏兼容适配所有机型(附完整案例)
Apr 26 Javascript
浅谈vue单页面中有多个echarts图表时的公用代码写法
Jul 19 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
单位速度在实战中的运用
2020/03/04 星际争霸
zf框架的数据库追踪器使用示例
2014/03/13 PHP
php传值方式和ajax的验证功能
2017/03/27 PHP
JavaScript Event学习第四章 传统的事件注册模型
2010/02/07 Javascript
用RadioButten或CheckBox实现div的显示与隐藏
2013/09/21 Javascript
JS控制表单提交的方法
2015/07/09 Javascript
javascript实现label标签跳出循环操作
2016/03/06 Javascript
原生JS查找元素的方法(推荐)
2016/11/22 Javascript
jQuery实现的仿百度,仿谷歌搜索下拉框效果示例
2016/12/30 Javascript
JS变量中有var定义和无var定义的区别以及es6中let命令和const命令
2017/02/19 Javascript
js实现无缝滚动图(可控制当前滚动的方向)
2017/02/22 Javascript
bootstrap常用组件之头部导航实现代码
2017/04/20 Javascript
inner join 内联与left join 左联的实例代码
2017/09/18 Javascript
Node.js中的child_process模块详解
2018/06/08 Javascript
JQuery+Bootstrap 自定义全屏Loading插件的示例demo
2019/07/03 jQuery
JavaScript中0、空字符串、'0'是true还是false的知识点分享
2019/09/16 Javascript
layui树形菜单动态遍历的例子
2019/09/23 Javascript
react的hooks的用法详解
2020/10/12 Javascript
[59:59]EG vs IG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python实现从百度API获取天气的方法
2015/03/11 Python
Python json模块使用实例
2015/04/11 Python
python3实现全角和半角字符转换的方法示例
2017/09/21 Python
Python内置模块logging用法实例分析
2018/02/12 Python
python简单操作excle的方法
2018/09/12 Python
python3+selenium实现126邮箱登陆并发送邮件功能
2019/01/23 Python
Python测试Kafka集群(pykafka)实例
2019/12/23 Python
Python3 中sorted() 函数的用法
2020/03/24 Python
html5中 media(播放器)的api使用指南
2014/12/26 HTML / CSS
Keds官方网站:购买帆布运动鞋和经典皮鞋
2016/11/12 全球购物
财务出纳员岗位职责
2013/11/26 职场文书
项目总经理岗位职责
2014/02/14 职场文书
汽车技术服务与贸易专业求职信
2014/07/20 职场文书
贫困证明模板(3篇)
2014/09/16 职场文书
2014年社区居委会主任重阳节讲话稿
2014/09/25 职场文书
2014年十八届四中全会思想汇报范文
2014/10/17 职场文书
2015年节能降耗工作总结
2015/05/22 职场文书