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 相关文章推荐
获取Javscript执行函数名称的方法
Dec 22 Javascript
基于jquery封装的一个js分页
Nov 15 Javascript
如何使用jQuery来处理图片坏链具体实现步骤
May 02 Javascript
javascript实现焦点滚动图效果 具体方法
Jun 24 Javascript
多引号嵌套的变量命名的问题
May 09 Javascript
jquery实现鼠标滑过小图查看大图的方法
Jul 20 Javascript
Vue实例简单方法介绍
Jan 20 Javascript
利用Vue.js+Node.js+MongoDB实现一个博客系统(附源码)
Apr 24 Javascript
对于input 框限定输入值为浮点型的js代码
Sep 25 Javascript
PHP自动加载autoload和命名空间的应用小结
Dec 01 Javascript
解决vue 项目引入字体图标报错、不显示等问题
Sep 01 Javascript
JS实现简单贪吃蛇小游戏
Oct 28 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
使用adodb lite解决问题
2006/12/31 PHP
使用GROUP BY的时候如何统计记录条数 COUNT(*) DISTINCT
2011/04/23 PHP
PHP+Mysql+jQuery实现发布微博程序 php篇
2015/10/15 PHP
基于php实现的php代码加密解密类完整实例
2016/10/12 PHP
一键生成各种尺寸Icon的php脚本(实例)
2017/02/08 PHP
一端时间轮换的广告
2006/06/26 Javascript
发现的以前不知道的函数
2006/09/19 Javascript
JavaScript的Function详细
2006/11/14 Javascript
YUI 读码日记之 YAHOO.util.Dom - Part.1
2008/03/22 Javascript
javascript innerText和innerHtml应用
2010/01/28 Javascript
Javascript创建Silverlight Plugin以及自定义nonSilverlight和lowSilverlight样式
2010/06/28 Javascript
javascript 基础篇4 window对象,DOM
2012/03/14 Javascript
js给dropdownlist添加选项的小例子
2013/03/04 Javascript
jQuery把表单元素变为json对象
2013/11/06 Javascript
解析JavaScript中点号“.”的多义性
2013/12/02 Javascript
javascript实现链接单选效果的方法
2015/05/13 Javascript
JS+JSP通过img标签调用实现静态页面访问次数统计的方法
2015/12/14 Javascript
EasyUI在表单提交之前进行验证的实例代码
2016/06/24 Javascript
js上下视差滚动简单实现代码
2017/03/07 Javascript
.net MVC+Bootstrap下使用localResizeIMG上传图片
2017/04/21 Javascript
JS实现经典的中国地区三级联动下拉菜单功能实例【测试可用】
2017/06/06 Javascript
彻底搞懂JavaScript中的apply和call方法(必看)
2017/09/18 Javascript
JS实现的简单拖拽购物车功能示例【附源码下载】
2018/01/03 Javascript
Element UI 自定义正则表达式验证方法
2018/09/04 Javascript
详解Vue.js v-for不支持IE9的解决方法
2018/12/29 Javascript
JS实现的获取银行卡号归属地及银行卡类型操作示例
2019/01/08 Javascript
详解Python的单元测试
2015/04/28 Python
在python中使用xlrd获取合并单元格的方法
2018/12/26 Python
python把ipynb文件转换成pdf文件过程详解
2019/07/09 Python
如何解决flask修改静态资源后缓存文件不能及时更改问题
2020/08/02 Python
Python实现钉钉/企业微信自动打卡的示例代码
2021/02/02 Python
保荐人的岗位职责
2013/11/19 职场文书
社区好人好事材料
2014/12/26 职场文书
质检员岗位职责范本
2015/04/07 职场文书
用php如何解决大文件分片上传问题
2021/07/07 PHP
redis复制有可能碰到的问题汇总
2022/04/03 Redis