vue全局使用axios的方法实例详解


Posted in Javascript onNovember 22, 2018

在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);
})

3.结合 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')
 }
}

总结

以上所述是小编给大家介绍的vue全局使用axios的方法实例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
用js实现的一个Flash滚动轮换显示图片代码生成器
Mar 14 Javascript
JQuery操作表格(隔行着色,高亮显示,筛选数据)
Feb 23 Javascript
javascript实现修改微信分享的标题内容等
Dec 11 Javascript
jquery html动态添加的元素绑定事件详解
May 24 Javascript
JS实现iframe自适应高度的方法(兼容IE与FireFox)
Jun 24 Javascript
Javascript函数中的arguments.callee用法实例分析
Sep 16 Javascript
React Native AsyncStorage本地存储工具类
Oct 24 Javascript
解决vuejs项目里css引用背景图片不能显示的问题
Sep 13 Javascript
使用layui前端框架弹出form表单以及提交的示例
Oct 25 Javascript
微信小程序实现按字母排列选择城市功能
Nov 25 Javascript
vue中echarts引入中国地图的案例
Jul 28 Javascript
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
Mar 01 Vue.js
vue中的ref和$refs的使用
Nov 22 #Javascript
浅析vue 函数配置项watch及函数 $watch 源码分享
Nov 22 #Javascript
原生JS实现手动轮播图效果实例代码
Nov 22 #Javascript
js实现按钮开关单机下拉菜单效果
Nov 22 #Javascript
vue+node实现图片上传及预览的示例方法
Nov 22 #Javascript
微信上传视频文件提示(推荐)
Nov 22 #Javascript
vue-cli3.0如何使用CDN区分开发、生产、预发布环境
Nov 22 #Javascript
You might like
php 上传功能实例代码
2010/04/13 PHP
php小技巧 把数组的键和值交换形成了新的数组,查找值取得键
2011/06/02 PHP
php将数组转换成csv格式文件输出的方法
2015/03/14 PHP
PHP实现微信退款的方法示例
2019/03/26 PHP
IE 下的只读 innerHTML
2009/08/21 Javascript
JavaScript—window对象使用示例
2013/12/09 Javascript
JS实现动态移动层及拖动浮层关闭的方法
2015/04/30 Javascript
javascript使用输出语句实现网页特效代码
2015/08/06 Javascript
jQuery EasyUI实现右键菜单变灰不可用效果
2015/09/24 Javascript
javascript实现2016新年版日历
2016/01/25 Javascript
AngularJS 遇到的小坑与技巧小结
2016/06/07 Javascript
手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现
2016/08/25 Javascript
js微信支付实现代码
2016/12/22 Javascript
BootStrap实现轮播图效果(收藏)
2016/12/30 Javascript
Angularjs中的ui-bootstrap的使用教程
2017/02/19 Javascript
基于AngularJS实现的工资计算器实例
2017/06/16 Javascript
微信小程序引用公共js里的方法的实例详解
2017/08/17 Javascript
微信小程序报错:this.setData is not a function的解决办法
2017/09/27 Javascript
微信小程序实现团购或秒杀批量倒计时
2020/11/01 Javascript
Vue中 v-if 和v-else-if页面加载出现闪现的问题及解决方法
2018/10/12 Javascript
vue 本地服务不能被外部IP访问的完美解决方法
2018/10/29 Javascript
微信小程序实现带参数的分享功能(两种方法)
2019/05/17 Javascript
微信小程序引入模块中wxml、wxss、js的方法示例
2019/08/09 Javascript
vue仿淘宝滑动验证码功能(样式模仿)
2019/12/10 Javascript
javascript设计模式 ? 状态模式原理与用法实例分析
2020/04/22 Javascript
Android基于TCP和URL协议的网络编程示例【附demo源码下载】
2018/01/23 Python
python 以16进制打印输出的方法
2018/07/09 Python
如何基于python实现年会抽奖工具
2020/10/20 Python
家长对小学生的评语
2014/01/28 职场文书
机关作风整顿个人剖析材料
2014/10/06 职场文书
留学推荐信中文范文
2015/03/26 职场文书
同事打架检讨书
2015/05/06 职场文书
python flask开发的简单基金查询工具
2021/06/02 Python
带你了解CSS基础知识,样式
2021/07/21 HTML / CSS
JS实现数组去重的11种方法总结
2022/04/04 Javascript
win11电脑关机鼠标灯还亮怎么解决? win11关机后鼠标灯还亮解决方法
2023/01/09 数码科技