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 相关文章推荐
jsvascript图像处理—(计算机视觉应用)图像金字塔
Jan 15 Javascript
刷新页面的几种方法小结(JS,ASP.NET)
Jan 07 Javascript
AngularJS过滤器详解及示例代码
Aug 16 Javascript
js仿腾讯QQ的web登陆界面
Aug 19 Javascript
JS常见简单正则表达式验证功能小结【手机,地址,企业税号,金额,身份证等】
Jan 22 Javascript
fullPage.js和CSS3实现全屏滚动效果
May 05 Javascript
angularJS模态框$modal实例代码
May 27 Javascript
JS中利用FileReader实现上传图片前本地预览功能
Mar 02 Javascript
vue指令只能输入正数并且只能输入一个小数点的方法
Jun 08 Javascript
node.js使用免费的阿里云ip查询获取ip所在地【推荐】
Sep 03 Javascript
vue动态删除从数据库倒入列表的某一条方法
Sep 29 Javascript
js实现一个页面多个倒计时的3种方法
Feb 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
我的论坛源代码(五)
2006/10/09 PHP
The specified CGI application misbehaved by not returning a complete set of HTTP headers
2011/03/31 PHP
PHP网站备份程序代码分享
2011/06/10 PHP
使用Linux五年积累的一些经验技巧
2013/06/20 PHP
一步一步教你写一个jQuery的插件教程(Plugin)
2009/09/03 Javascript
修改jquery里的dialog对话框插件为框架页(iframe) 的方法
2010/09/14 Javascript
阻止事件(取消浏览器对事件的默认行为并阻止其传播)
2013/11/03 Javascript
jquery实现页面百叶窗走马灯式翻滚显示效果的方法
2015/03/12 Javascript
JavaScript控制图片加载完成后调用回调函数的方法
2015/03/20 Javascript
JS中mouseover和mouseout多次触发问题如何解决
2016/06/06 Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
2016/06/22 Javascript
JS基于递归实现倒计时效果的方法
2016/11/26 Javascript
微信小程序图片自适应支持多图实例详解
2017/06/21 Javascript
如何理解Vue的作用域插槽的实现原理
2017/08/19 Javascript
详解node服务器中打开html文件的两种方法
2017/09/18 Javascript
Angular实现下拉框模糊查询功能示例
2018/01/03 Javascript
详解vue-router传参的两种方式
2018/09/10 Javascript
vue实现div拖拽互换位置
2020/07/29 Javascript
js实现简单音乐播放器
2020/06/30 Javascript
vue实现点击出现操作弹出框的示例
2020/11/05 Javascript
Python自定义简单图轴简单实例
2018/01/08 Python
Python之列表的插入&替换修改方法
2018/06/28 Python
利用ctypes获取numpy数组的指针方法
2019/02/12 Python
pycharm设置当前工作目录的操作(working directory)
2020/02/14 Python
python 模拟登录B站的示例代码
2020/12/15 Python
python爬虫scrapy框架的梨视频案例解析
2021/02/20 Python
Omio荷兰:预订火车、巴士和机票
2018/11/04 全球购物
营销与策划专业毕业生求职信
2013/11/01 职场文书
函授教育个人学习的自我评价
2013/12/31 职场文书
中英文求职信范文
2014/01/27 职场文书
新闻编辑求职信
2014/04/09 职场文书
研发工程师岗位职责
2014/04/28 职场文书
2014党员学习兰辉先进事迹思想汇报
2014/09/17 职场文书
课文《燕子》教学反思
2016/02/17 职场文书
Python中可变和不可变对象的深入讲解
2021/08/02 Python
吉利入股戴姆勒后smart“长大了”
2022/04/21 数码科技