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实现页面自适应
Jan 19 Javascript
JavaScript定义类或函数的几种方式小结
Jan 09 Javascript
Google Map V3 绑定气泡窗口(infowindow)Dom事件实现代码
Apr 26 Javascript
jQuery实现文本框邮箱输入自动补全效果
Nov 17 Javascript
详解JavaScript的变量和数据类型
Nov 27 Javascript
jQuery 3 中的新增功能汇总介绍
Jun 12 Javascript
自动化测试读写64位操作系统的注册表
Aug 15 Javascript
JavaScript递归操作实例浅析
Oct 31 Javascript
js+html制作简单验证码
Feb 16 Javascript
Vue结合SignalR实现前后端实时消息同步
Sep 19 Javascript
arcgis for js栅格图层叠加(Raster Layer)问题
Nov 22 Javascript
vue实现学生录入系统之添加删除功能
Jul 11 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判断变量是否为0的方法
2014/02/08 PHP
ThinkPHP权限认证Auth实例详解
2014/07/22 PHP
Laravel 5框架学习之子视图和表单复用
2015/04/09 PHP
php 二维数组时间排序实现代码
2016/11/19 PHP
Javascript面向对象编程(二) 构造函数的继承
2011/08/28 Javascript
jQuery在html有效在jsp无效的原因及解决方法
2013/08/02 Javascript
JS实现程序暂停与继续功能代码解读
2013/10/10 Javascript
javascript模拟评分控件实现方法
2015/05/13 Javascript
JavaScript中继承用法实例分析
2015/05/16 Javascript
详解JavaScript数组和字符串中去除重复值的方法
2016/03/07 Javascript
js判断一个字符串是以某个字符串开头的简单实例
2016/12/27 Javascript
JS组件系列之JS组件封装过程详解
2017/04/28 Javascript
ionic实现下拉刷新载入数据功能
2017/05/11 Javascript
如何选择适合你的JavaScript框架
2017/11/20 Javascript
axios的拦截请求与响应方法
2018/08/11 Javascript
angular2 ng2-file-upload上传示例代码
2018/08/23 Javascript
layui form.render('select', 'test2') 更新渲染的方法
2019/09/27 Javascript
9种方法优化jQuery代码详解
2020/02/04 jQuery
Vue-CLI 3 scp2自动部署项目至服务器的方法
2020/07/24 Javascript
Python字符转换
2008/09/06 Python
让python json encode datetime类型
2010/12/28 Python
python实现微信接口(itchat)详细介绍
2017/10/23 Python
python使用phoenixdb操作hbase的方法示例
2019/02/28 Python
详解python tkinter教程-事件绑定
2019/03/28 Python
djano一对一、多对多、分页实例代码
2019/08/16 Python
Python中BeautifuSoup库的用法使用详解
2019/11/15 Python
查看端口并杀进程python脚本代码
2019/12/17 Python
Python 3.8 新功能大揭秘【新手必学】
2020/02/05 Python
在服务器上安装python3.8.2环境的教程详解
2020/04/26 Python
Python pip install如何修改默认下载路径
2020/04/29 Python
pycharm 实现复制一行的快捷键
2021/01/15 Python
python实现控制台输出颜色
2021/03/02 Python
Kangol帽子官网:坎戈尔袋鼠
2018/09/26 全球购物
销售演讲稿范文
2014/01/08 职场文书
白酒代理协议书范本
2014/10/26 职场文书
小学语文教师研修感悟
2015/11/18 职场文书