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修改网页背景颜色通过css方法实现
Jun 06 Javascript
JavaScript获取网页表单action属性的方法
Apr 02 Javascript
js删除局部变量的实现方法
Jun 25 Javascript
jQuery数组处理函数整理
Aug 03 Javascript
轻松掌握JavaScript策略模式
Aug 25 Javascript
AngularJS双向绑定和依赖反转实例详解
Apr 15 Javascript
Vue中使用vux的配置详解
May 05 Javascript
JS实现的input选择图片本地预览功能示例
Aug 29 Javascript
微信小程序遍历Echarts图表实现多个饼图
Apr 25 Javascript
vue + axios get下载文件功能
Sep 25 Javascript
js实现盒子拖拽动画效果
Aug 09 Javascript
vue配置多代理服务接口地址操作
Sep 08 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 操作调试的方法
2012/07/12 PHP
浅析is_writable的php实现
2013/06/18 PHP
php使用mb_check_encoding检查字符串在指定的编码里是否有效
2013/11/07 PHP
PHP读取大文件的类SplFileObject使用介绍
2014/04/09 PHP
PHP中把stdClass Object转array的几个方法
2014/05/08 PHP
phplot生成图片类用法详解
2015/01/06 PHP
php实现图片上传并进行替换操作
2016/03/15 PHP
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
2017/05/02 PHP
Swoole实现异步投递task任务案例详解
2019/04/02 PHP
Laravel Validator 实现两个或多个字段联合索引唯一
2019/05/08 PHP
js为数字添加逗号并格式化数字的代码
2013/08/23 Javascript
JavaScript框架(iframe)操作总结
2014/04/16 Javascript
JS实现带有3D立体感的银灰色竖排折叠菜单代码
2015/10/20 Javascript
详解支持Angular 2的表格控件
2017/01/19 Javascript
nodejs创建简易web服务器与文件读写的实例
2017/09/07 NodeJs
Node.js实现发送邮件功能
2017/11/06 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
2019/09/02 Javascript
微信小程序使用 vant Dialog组件的正确方式
2020/02/21 Javascript
javascript事件循环event loop的简单模型解释与应用分析
2020/03/14 Javascript
在Django的模板中使用认证数据的方法
2015/07/23 Python
基于python的多进程共享变量正确打开方式
2018/04/28 Python
Python安装Flask环境及简单应用示例
2019/05/03 Python
pandas 使用均值填充缺失值列的小技巧分享
2019/07/04 Python
pytorch实现特殊的Module--Sqeuential三种写法
2020/01/15 Python
django之导入并执行自定义的函数模块图解
2020/04/01 Python
Selenium常见异常解析及解决方案示范
2020/04/10 Python
AmazeUI 加载进度条的实现示例
2020/08/20 HTML / CSS
船舶专业个人求职信范文
2014/01/02 职场文书
工程质量承诺书
2014/03/27 职场文书
政治学求职信
2014/06/03 职场文书
运动会口号8字
2014/06/07 职场文书
教师师德工作总结2015
2015/07/22 职场文书
关爱空巢老人感想
2015/08/11 职场文书
2016年秋季趣味运动会开幕词
2016/03/04 职场文书
JavaWeb Servlet开发注册页面实例
2022/04/11 Java/Android
Spring Data JPA框架的核心概念和Repository接口
2022/04/28 Java/Android