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 相关文章推荐
JavaScript 组件之旅(一)分析和设计
Oct 28 Javascript
跟我学习javascript的arguments对象
Nov 16 Javascript
AngularJS基础 ng-hide 指令用法及示例代码
Aug 01 Javascript
jQuery使用$获取对象后检查该对象是否存在的实现方法
Sep 04 Javascript
canvas实现探照灯效果
Feb 07 Javascript
微信小程序实现轮播图效果
Sep 07 Javascript
使用 Javascript 实现浏览器推送提醒功能的示例
Nov 03 Javascript
javascript实现数字配对游戏的实例讲解
Dec 14 Javascript
vue使用iframe嵌入网页的示例代码
Jun 09 Javascript
js实现图片上传并预览功能
Aug 06 Javascript
小程序二次贝塞尔曲线实现购物车商品曲线飞入效果
Jan 07 Javascript
微信小程序制作表格的方法
Feb 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
MYSQL环境变量设置方法
2007/01/15 PHP
php带密码功能并下载远程文件保存本地指定目录 修改加强版
2010/05/16 PHP
PHP date()函数警告: It is not safe to rely on the system解决方法
2014/08/20 PHP
php实现Linux服务器木马排查及加固功能
2014/12/29 PHP
Mac环境下php操作mysql数据库的方法分享
2015/05/11 PHP
PHP代码优化技巧小结
2015/09/29 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
2016/05/17 PHP
header与缓冲区之间的深层次分析
2016/07/30 PHP
如何用PHP做到页面注册审核
2017/03/02 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
2020/01/07 PHP
js自定义事件及事件交互原理概述(一)
2013/02/01 Javascript
从数据库读取数据后将其输出成html标签的三种方法
2014/10/13 Javascript
jquery禁止回车触发表单提交
2014/12/12 Javascript
node.js读取文件到字符串的方法
2015/06/29 Javascript
JavaScript统计网站访问次数的实现代码
2015/11/18 Javascript
javascript self对象使用详解
2016/10/18 Javascript
学习jQuery中的noConflict()用法
2018/09/28 jQuery
Vuejs学习笔记之使用指令v-model完成表单的数据双向绑定
2019/04/29 Javascript
使用Taro实现小程序商城的购物车功能模块的实例代码
2020/06/05 Javascript
利用python生成一个导出数据库的bat脚本文件的方法
2016/12/30 Python
Appium Python自动化测试之环境搭建的步骤
2019/01/23 Python
Python timeit模块的使用实践
2020/01/13 Python
python使用turtle库绘制奥运五环
2020/02/24 Python
如何在VSCode下使用Jupyter的教程详解
2020/07/13 Python
G-Form护具官方网站:美国运动保护装备
2019/09/04 全球购物
日本AOKI官方商城:AOKI西装
2020/06/11 全球购物
交通专业个人自荐信格式
2013/09/23 职场文书
酒店管理专业毕业生推荐信
2013/11/10 职场文书
犯错检讨书
2014/02/21 职场文书
五四演讲稿范文
2014/09/03 职场文书
婚庆公司计划书
2014/09/15 职场文书
群众路线对照检查材料思想汇报怎么写
2014/09/18 职场文书
公司委托书范本5篇
2014/09/20 职场文书
学校德育工作总结2015
2015/05/11 职场文书
保护动物的宣传语
2015/07/13 职场文书
Android Rxjava3 使用场景详解
2022/04/07 Java/Android