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 相关文章推荐
js验证表单大全
Nov 25 Javascript
jQuery判断密码强度实现思路及代码
Apr 24 Javascript
js操作iframe兼容各种主流浏览器示例代码
Jul 22 Javascript
javascript Event对象详解及使用示例
Nov 22 Javascript
iframe如何动态创建及释放其所占内存
Sep 03 Javascript
基于JavaScript实现在新的tab页打开url
Aug 04 Javascript
js实现hashtable的赋值、取值、遍历操作实例详解
Dec 25 Javascript
微信小程序 常用工具类详解及实例
Feb 15 Javascript
jQuery布局组件EasyUI Layout使用方法详解
Feb 28 Javascript
parabola.js抛物线与加入购物车效果的示例代码
Oct 25 Javascript
vue进行图片的预加载watch用法实例讲解
Feb 07 Javascript
vue实现修改图片后实时更新
Nov 14 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简单开启gzip压缩方法(zlib.output_compression)
2013/04/13 PHP
php array_reverse 以相反的顺序返回数组实例代码
2017/04/11 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
2019/09/02 PHP
Thinkphp 框架扩展之行为扩展原理与实现方法分析
2020/04/23 PHP
使用Apache的rewrite
2021/03/09 Servers
jQuery 改变CSS样式基础代码
2010/02/11 Javascript
input按钮的事件处理大全
2010/12/10 Javascript
js取滚动条的尺寸的函数代码
2011/11/30 Javascript
Ext JS 4官方文档之三 -- 类体系概述与实践
2012/12/16 Javascript
js 通过html()及text()方法获取并设置p标签的显示值
2014/05/14 Javascript
js和jquery中循环的退出和继续学习记录
2014/09/06 Javascript
浅谈angular.js中实现双向绑定的方法$watch $digest $apply
2015/10/14 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
2016/09/20 Javascript
Asp.Net之JS生成分页条的方法
2016/11/23 Javascript
js读取json文件片段中的数据实例
2017/03/09 Javascript
vue-router启用history模式下的开发及非根目录部署方法
2018/12/23 Javascript
使用nvm和nrm优化node.js工作流的方法
2019/01/17 Javascript
vue实现路由懒加载的3种方法示例
2020/09/01 Javascript
浅谈Python的文件类型
2016/05/30 Python
Python之str操作方法(详解)
2017/06/19 Python
Python编程使用tkinter模块实现计算器软件完整代码示例
2017/11/29 Python
python获取酷狗音乐top500的下载地址 MP3格式
2018/04/17 Python
Python subprocess模块功能与常见用法实例详解
2018/06/28 Python
浅谈Python中(&,|)和(and,or)之间的区别
2019/08/07 Python
如何在VSCode下使用Jupyter的教程详解
2020/07/13 Python
独特的礼品和创新的科技产品:The Grommet
2018/02/24 全球购物
意大利在线购买隐形眼镜网站:VisionDirect.it
2019/03/18 全球购物
介绍一下.NET构架下remoting和webservice
2014/05/08 面试题
结构和类有什么异同
2012/07/16 面试题
简历中自我评价分享
2013/10/09 职场文书
物理教师自荐信范文
2013/12/28 职场文书
公司授权委托书样本
2014/09/15 职场文书
教师求职自荐信范文
2015/03/04 职场文书
安装pytorch时报sslerror错误的解决方案
2021/05/17 Python
Win11怎么启动任务管理器?Win11启动任务管理器的几种方法
2021/11/23 数码科技
python3中apply函数和lambda函数的使用详解
2022/02/28 Python