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 相关文章推荐
让AJAX不依赖后端接口实现方案
Dec 03 Javascript
图片放大镜jquery.jqzoom.js使用实例附放大镜图标
Jun 19 Javascript
jQuery实现模仿微博下拉滚动条加载数据效果
Dec 25 Javascript
全面理解JavaScript中的闭包
May 12 Javascript
使用RequireJS库加载JavaScript模块的实例教程
Jun 06 Javascript
jQuery获取单选按钮radio选中值与去除所有radio选中状态的方法
May 20 jQuery
js学习总结之DOM2兼容处理this问题的解决方法
Jul 27 Javascript
原生js jquery ajax请求以及jsonp的调用方法
Aug 04 jQuery
Vue项目使用CDN优化首屏加载问题
Apr 01 Javascript
微信小程序出现wx.getLocation再次授权问题的解决方法分析
Jan 16 Javascript
JavaScript forEach中return失效问题解决方案
Jun 01 Javascript
addEventListener()和removeEventListener()追加事件和删除追加事件
Dec 04 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
网站当前的在线人数
2006/10/09 PHP
粗略计算在线时间,bug:ip相同
2006/12/09 PHP
PHP程序员编程注意事项
2008/04/10 PHP
PHP中判断变量为空的几种方法小结
2013/11/12 PHP
两级联动select刷新后其值保持不变的实现方法
2014/01/27 PHP
什么是DOM(Document Object Model)文档对象模型
2012/03/05 Javascript
页面加载完成后再执行JS的jquery写法以及区别说明
2014/02/22 Javascript
javascript实现手机震动API代码
2015/08/05 Javascript
javascript封装简单实现方法
2015/08/11 Javascript
两款JS脚本判断手机浏览器类型跳转WAP手机网站
2015/10/16 Javascript
JavaScript电子时钟倒计时
2016/01/09 Javascript
js重写方法的简单实现
2016/07/10 Javascript
在JS循环中使用async/await的方法
2018/10/12 Javascript
微信小程序云开发之新手环境配置
2019/05/16 Javascript
layui关闭层级、简单监听的实例
2019/09/06 Javascript
详解webpack的clean-webpack-plugin插件报错
2020/10/16 Javascript
jquery实现加载更多"转圈圈"效果(示例代码)
2020/11/09 jQuery
vue中activated的用法
2021/01/03 Vue.js
Python中使用socket发送HTTP请求数据接收不完整问题解决方法
2015/02/04 Python
Python处理字符串之isspace()方法的使用
2015/05/19 Python
利用python发送和接收邮件
2016/09/27 Python
Python标准库使用OrderedDict类的实例讲解
2019/02/14 Python
python实现整数的二进制循环移位
2019/03/08 Python
在python中用print()输出多个格式化参数的方法
2019/07/16 Python
Python 共享变量加锁、释放详解
2019/08/28 Python
Python pandas自定义函数的使用方法示例
2019/11/20 Python
解决Keras 与 Tensorflow 版本之间的兼容性问题
2020/02/07 Python
Python自动创建Excel并获取内容
2020/09/16 Python
HTML5进阶段内联标签汇总(小篇)
2016/07/13 HTML / CSS
群众路线党课主持词
2014/04/01 职场文书
2014年教师节演讲稿范文
2014/09/10 职场文书
四查四看整改措施
2014/09/19 职场文书
施工安全保证书
2015/05/09 职场文书
优化Mysql查询的示例
2022/04/26 MySQL
baselines示例程序train_cartpole.py的ImportError
2022/05/20 Python
微软Win11 全新照片应用面向 Dev预览版推出 新版本上手体验图集
2022/09/23 数码科技