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 键盘事件的几个基本方法
Oct 30 Javascript
Javascript中 关于prototype属性实现继承的原理图
Apr 16 Javascript
深入理解javascript动态插入技术
Nov 12 Javascript
鼠标选择动态改变网页背景颜色的JS代码
Dec 10 Javascript
JS中window.open全屏命令解析及使用示例
Dec 11 Javascript
easyui combobox开启搜索自动完成功能的实例代码
Nov 08 Javascript
JavaScript拖动层Div代码
Mar 01 Javascript
vue.js实现用户评论、登录、注册、及修改信息功能
May 30 Javascript
Vue源码学习之初始化模块init.js解析
Nov 02 Javascript
vue动态禁用控件绑定disable的例子
Oct 28 Javascript
vue把输入框的内容添加到页面的实例讲解
Nov 11 Javascript
vue组件添加事件@click.native操作
Oct 30 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
Zend Framework生成验证码并实现验证码验证功能(附demo源码下载)
2016/03/22 PHP
JavaScript中的Screen屏幕对象
2008/01/16 Javascript
javascript 表单的友好用户体现
2009/01/07 Javascript
JS,Jquery获取select,dropdownlist,checkbox下拉列表框的值(示例代码)
2014/01/11 Javascript
jquery mobile页面跳转后样式丢失js失效的解决方法
2014/09/06 Javascript
JavaScript设计模式之外观模式实例
2014/10/10 Javascript
Vue.js自定义指令的用法与实例解析
2017/01/18 Javascript
原生JS实现简单放大镜效果
2017/02/08 Javascript
详谈jQuery.load()和Jsp的include的区别
2017/04/12 jQuery
js实现登录注册框手机号和验证码校验(前端部分)
2017/09/28 Javascript
在vscode里使用.vue代码模板的方法
2018/04/28 Javascript
Nuxt配合Node在实际生产中的应用详解
2018/08/07 Javascript
如何为你的JavaScript代码日志着色详解
2019/04/08 Javascript
OpenLayers加载缩放控件使用方法详解
2020/09/25 Javascript
Vue获取微博授权URL代码实例
2020/11/04 Javascript
[06:20]2015国际邀请赛第三日top10
2015/08/08 DOTA
Python基类函数的重载与调用实例分析
2015/01/12 Python
基于Python Shell获取hostname和fqdn释疑
2016/01/25 Python
python实现键盘输入的实操方法
2019/07/16 Python
Python 实现遥感影像波段组合的示例代码
2019/08/04 Python
pycharm显示远程图片的实现
2019/11/04 Python
Python函数的默认参数设计示例详解
2019/12/01 Python
Python遍历字典方式就实例详解
2019/12/28 Python
python zip,lambda,map函数代码实例
2020/04/04 Python
pytorch cuda上tensor的定义 以及减少cpu的操作详解
2020/06/23 Python
HTML5实现桌面通知 提示功能
2017/10/11 HTML / CSS
西班牙伏林航空公司:Vueling
2016/08/05 全球购物
美国最大的网上冲印店:Shutterfly
2017/01/01 全球购物
澳洲健康食品网上商店:Aussie Health Products
2018/06/15 全球购物
个人实用简单的自我评价
2013/10/19 职场文书
大学生军训感想
2014/02/16 职场文书
小学母亲节活动方案
2014/03/14 职场文书
2014年师德承诺书
2014/05/23 职场文书
测绘工程专业求职信
2014/07/15 职场文书
劳保用品管理制度范本
2015/08/06 职场文书
导游词之山东八大关
2019/12/18 职场文书