vue全局使用axios的操作


Posted in Javascript onSeptember 08, 2020

在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);
})

结合 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')
 }
}

补充知识:ElementUI 在VUE中配置 main.js与axios的关系

一、在main.js中:

import ElementUI from 'element-ui'

Vue.use(ElementUI)

二、在main.js中,数据请求axios不能在这里配置

以上这篇vue全局使用axios的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery tools 系列 scrollable学习
Sep 06 Javascript
将函数的实际参数转换成数组的方法
Jan 25 Javascript
jquery 实现二级/三级/多级联动菜单的思路及代码
Apr 08 Javascript
js获取当前日期代码适用于网页头部
Jun 27 Javascript
原生javascript实现图片按钮切换
Jan 12 Javascript
javascript 闭包详解
Feb 15 Javascript
JS实现自动阅读单词(有道单词本添加功能)
Nov 14 Javascript
Avalonjs 实现简单购物车功能(实例代码)
Feb 07 Javascript
AngularJS基于MVC的复杂操作实例讲解
Dec 31 Javascript
php结合js实现多条件组合查询
May 28 Javascript
vue动态子组件的两种实现方式
Sep 01 Javascript
layui中的switch开关实现方法
Sep 03 Javascript
Vue自定义多选组件使用详解
Sep 08 #Javascript
vue项目中微信登录的实现操作
Sep 08 #Javascript
关于element-ui表单中限制输入纯数字的解决方式
Sep 08 #Javascript
快速解决element的autofocus失效问题
Sep 08 #Javascript
vue axios请求成功却进入catch的原因分析
Sep 08 #Javascript
JavaScript数组类型Array相关的属性与方法详解
Sep 08 #Javascript
vue中后端做Excel导出功能返回数据流前端的处理操作
Sep 08 #Javascript
You might like
十天学会php之第九天
2006/10/09 PHP
ajax完美实现两个网页 分页功能的实例代码
2013/04/16 PHP
PHP仿博客园 个人博客(1) 数据库与界面设计
2013/07/05 PHP
浅析ThinkPHP中execute和query方法的区别
2014/06/13 PHP
php 中奖概率算法实现代码
2017/01/25 PHP
PHP实现权限管理功能示例
2017/09/22 PHP
IE6 fixed的完美解决方案
2011/03/31 Javascript
圣诞节Merry Christmas给博客添加浪漫的下雪效果基于jquery实现
2012/12/27 Javascript
初识Node.js
2014/09/03 Javascript
深入理解JavaScript系列(28):设计模式之工厂模式详解
2015/03/03 Javascript
jQuery判断一个元素是否可见的方法
2015/06/05 Javascript
jQuery实现时尚漂亮的弹出式对话框实例
2015/08/07 Javascript
jQuery实现的Div窗口震动效果实例
2015/08/07 Javascript
js游戏人物上下左右跑步效果代码分享
2015/08/28 Javascript
js简单判断移动端系统的方法
2016/02/25 Javascript
javascript类型系统_正则表达式RegExp类型详解
2016/06/24 Javascript
jQuery 操作input中radio的技巧
2016/07/18 Javascript
JS表单提交验证、input(type=number) 去三角 刷新验证码
2017/06/21 Javascript
angular2中Http请求原理与用法详解
2018/01/11 Javascript
详解Python发送邮件实例
2016/01/10 Python
Python正则表达式实现截取成对括号的方法
2017/01/06 Python
selenium python浏览器多窗口处理代码示例
2018/01/15 Python
OpenCV+python手势识别框架和实例讲解
2018/08/03 Python
python构造函数init实例方法解析
2020/01/19 Python
Python任务自动化工具tox使用教程
2020/03/17 Python
简述索引存取方法的作用和建立索引的原则
2013/03/26 面试题
关于爱情的广播稿
2014/01/16 职场文书
法学自荐信
2014/06/20 职场文书
企业授权委托书范本
2014/09/22 职场文书
异地年检委托书范本
2014/09/24 职场文书
教师三严三实心得体会
2014/10/11 职场文书
自查自纠工作总结
2014/10/15 职场文书
考生诚信考试承诺书
2015/04/29 职场文书
领导干部失职检讨书
2015/05/05 职场文书
幼儿园教师辞职信
2019/06/21 职场文书
Python实现简单的俄罗斯方块游戏
2021/09/25 Python