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编写COM组件的步骤
Mar 17 Javascript
$.ajax返回的JSON无法执行success的解决方法
Sep 09 Javascript
extjs中form与grid交互数据(record)的方法
Aug 29 Javascript
jquery淡化版banner异步图片文字效果切换图片特效
Apr 08 Javascript
IE及IE6浏览器中判断JS文件加载成功失败的方法
Feb 18 Javascript
代码分析jQuery四种静态方法使用
Jul 23 Javascript
深入浅析JavaScript中with语句的理解
May 12 Javascript
分享JS数组求和与求最大值的方法
Aug 11 Javascript
vue-router路由参数刷新消失的问题解决方法
Jun 17 Javascript
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
Sep 22 jQuery
使用cookie绕过验证码登录的实现代码
Oct 12 Javascript
vue打包使用Nginx代理解决跨域问题
Aug 27 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
咖啡豆的最常见发酵处理方法,详细了解一下
2021/03/03 冲泡冲煮
php循环检测目录是否存在并创建(循环创建目录)
2011/01/06 PHP
php正则表达式(regar expression)
2011/09/10 PHP
php 操作符与控制结构
2012/03/07 PHP
php获取指定日期之间的各个周和月的起止时间
2014/11/24 PHP
PHP往XML中添加节点的方法
2015/03/12 PHP
php注册和登录界面的实现案例(推荐)
2016/10/24 PHP
CodeIgniter框架基本增删改查操作示例
2017/03/23 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
javascript事件模型代码
2007/07/01 Javascript
JavaScript 精粹读书笔记(1,2)
2010/02/07 Javascript
autoPlay 基于jquery的图片自动播放效果
2011/12/07 Javascript
ASP.NET jQuery 实例12 通过使用jQuery validation插件简单实现用户注册页面验证功能
2012/02/03 Javascript
JS按字节截取字符长度实例
2013/11/20 Javascript
javascript闭包概念简单解析(推荐)
2016/06/03 Javascript
基于HTML+CSS+JS实现增加删除修改tab导航特效代码
2016/08/05 Javascript
AngularJs expression详解及简单示例
2016/09/01 Javascript
解决vue2中使用axios http请求出现的问题
2018/03/05 Javascript
Element UI 自定义正则表达式验证方法
2018/09/04 Javascript
js和jquery判断数据类型的4种方法总结
2020/08/28 jQuery
详解Vue中Axios封装API接口的思路及方法
2020/10/10 Javascript
[02:10]DOTA2 TI10勇士令状玩法及不朽Ⅰ展示:焕新世界,如你所期
2020/05/29 DOTA
Python自定义装饰器原理与用法实例分析
2018/07/16 Python
Numpy截取指定范围内的数据方法
2018/11/14 Python
PIL图像处理模块paste方法简单使用详解
2019/07/17 Python
Python 如何测试文件是否存在
2020/07/31 Python
Python 爬虫性能相关总结
2020/08/03 Python
python中的列表和元组区别分析
2020/12/30 Python
BOSE德国官网:尽探索之力,享音乐之极
2016/12/11 全球购物
理肤泉美国官网:La Roche-Posay
2018/01/17 全球购物
Scotch Porter官方网站:男士美容产品
2020/08/31 全球购物
工作失误检讨书范文大全
2014/01/13 职场文书
上课迟到检讨书
2014/02/19 职场文书
教师批评与自我批评总结
2014/10/16 职场文书
三八妇女节主持词
2015/07/04 职场文书
2019财务转正述职报告
2019/06/27 职场文书