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 DOM操作实例
Mar 05 Javascript
纯javascript实现简单下拉刷新功能
Mar 13 Javascript
javascript实现自动填写表单实例简析
Dec 02 Javascript
javascript中加var和不加var的区别 你真的懂吗
Jan 06 Javascript
jquery组件WebUploader文件上传用法详解
Oct 23 Javascript
JS作用域链详解
Jun 26 Javascript
Vue2.0学习系列之项目上线的方法步骤(图文)
Sep 25 Javascript
使用JavaScript解析URL的方法示例
Mar 01 Javascript
详解Vue+elementUI build打包部署后字体图标丢失问题
Jul 13 Javascript
js实现批量删除功能
Aug 27 Javascript
js实现限定区域范围拖拉拽效果
Nov 20 Javascript
如何制作自己的原生JavaScript路由
May 05 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
yii2.0框架数据库操作简单示例【添加,修改,删除,查询,打印等】
2020/04/13 PHP
用方法封装javascript的new操作符(一)
2010/12/25 Javascript
基于jquery的使ListNav兼容中文首字拼音排序的实现代码
2011/07/10 Javascript
js控制文本框输入的字符类型方法汇总
2015/06/19 Javascript
JavaScript访问字符串中单个字符的两种方法
2015/07/03 Javascript
jQuery EasyUI常用数据验证汇总
2016/09/18 Javascript
js设置文字颜色的方法示例
2016/12/30 Javascript
详解Nodejs内存治理
2018/05/13 NodeJs
详解JS浏览器事件循环机制
2019/03/27 Javascript
解决微信小程序云开发中获取数据库的内容为空的方法
2019/05/15 Javascript
js prototype和__proto__的关系是什么
2019/08/23 Javascript
vue 解决路由只变化参数页面组件不更新问题
2019/11/05 Javascript
node省市区三级数据性能测评实例分析
2019/11/06 Javascript
纯js+css实现仿移动端淘宝网站的弹出详情框功能
2019/12/29 Javascript
深入理解Antd-Select组件的用法
2020/02/25 Javascript
Vue.js原理分析之nextTick实现详解
2020/09/07 Javascript
使用Python脚本将绝对url替换为相对url的教程
2015/04/24 Python
python getopt详解及简单实例
2016/12/30 Python
Python操作csv文件实例详解
2017/07/31 Python
关于Python数据结构中字典的心得
2017/12/04 Python
python生成九宫格图片
2018/11/19 Python
python机器学习包mlxtend的安装和配置详解
2019/08/21 Python
Laravel框架表单验证格式化输出的方法
2019/09/25 Python
pandas分组聚合详解
2020/04/10 Python
Python新手学习raise用法
2020/06/03 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
2020/06/29 Python
用HTML5实现鼠标滚轮事件放大缩小图片的功能
2015/06/25 HTML / CSS
一级方程式赛车官方网上商店:F1 Store(支持中文)
2018/01/12 全球购物
美国高级音响品牌:Master&Dynamic
2018/07/05 全球购物
Under Armour安德玛德国官网:美国高端运动科技品牌
2019/03/09 全球购物
关于Java String的一道面试题
2013/09/29 面试题
运动会广播稿100字
2014/09/14 职场文书
python3.7.2 tkinter entry框限定输入数字的操作
2021/05/22 Python
详解Redis瘦身指南
2021/05/26 Redis
关于Oracle12C默认用户名system密码不正确的解决方案
2021/10/16 Oracle
Spring Data JPA框架自定义Repository接口
2022/04/28 Java/Android