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 为label标签和div标签赋值的方法
Aug 08 Javascript
Javascript实现真实字符串剩余字数提示的实例代码
Oct 22 Javascript
jQuery实现div浮动层跟随页面滚动效果
Feb 11 Javascript
Jquery自定义button按钮的几种方法
Jun 11 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖放商品放置购物车
Nov 30 Javascript
jQuery实现div随意拖动的实例代码(通用代码)
Jan 28 Javascript
vue中的event bus非父子组件通信解析
Oct 27 Javascript
Vue中this.$router.push参数获取方法
Feb 27 Javascript
详解.vue文件中style标签的几个标识符
Jul 17 Javascript
node命令行工具之实现项目工程自动初始化的标准流程
Aug 12 Javascript
vue输入节流,避免实时请求接口的实例代码
Oct 30 Javascript
vantUI 获得piker选中值的自定义ID操作
Nov 04 Javascript
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 远程关机操作的代码
2008/12/05 PHP
php转换上传word文件为PDF的方法【基于COM组件】
2019/06/10 PHP
PHP面向对象程序设计子类扩展父类(子类重新载入父类)操作详解
2019/06/14 PHP
PHP实现关键字搜索后描红功能示例
2019/07/03 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
PHP队列场景以及实现代码实例详解
2021/02/26 PHP
javascript 解析后的xml对象的读取方法细解
2009/07/25 Javascript
javascript实现面向对象类的功能书写技巧
2010/03/07 Javascript
JavaScript中使用正则匹配多条,且获取每条中的分组数据
2010/11/30 Javascript
Javascript 键盘事件的组合使用实现代码
2012/05/04 Javascript
给页面渲染时间加速 干掉Dom Level 0 Event
2012/12/19 Javascript
使用javascript过滤html的字符串(注释标记法)
2013/07/08 Javascript
js中如何把字符串转化为对象、数组示例代码
2013/07/17 Javascript
运用jQuery定时器的原理实现banner图片切换
2014/10/22 Javascript
js实现完美兼容各大浏览器的人民币大小写相互转换
2015/10/29 Javascript
JavaScript判断页面加载完之后再执行预定函数的技巧
2016/05/17 Javascript
JS DOMReady事件的六种实现方法总结
2016/11/23 Javascript
bootstrap table分页模板和获取表中的ID方法
2017/01/10 Javascript
vue实现简单实时汇率计算功能
2017/01/15 Javascript
微信小程序模版渲染详解
2018/01/26 Javascript
React学习笔记之高阶组件应用
2018/06/02 Javascript
详解js删除数组中的指定元素
2018/10/31 Javascript
[03:02]辉夜杯主赛事第二日 每日之星
2015/12/27 DOTA
python实现html转ubb代码(html2ubb)
2014/07/03 Python
Python求两个文本文件以行为单位的交集、并集与差集的方法
2015/06/17 Python
一道python走迷宫算法题
2018/01/22 Python
python中pivot()函数基础知识点
2021/01/03 Python
美国派对用品及装饰品网上商店:Shindigz
2016/07/30 全球购物
行政总监岗位职责
2013/12/05 职场文书
九年级物理教学反思
2014/01/29 职场文书
高二化学教学反思
2014/01/30 职场文书
村居抓节水倡议书
2014/05/19 职场文书
小学元宵节活动总结
2015/02/06 职场文书
民事诉讼答辩状范文
2015/05/21 职场文书
致运动员加油稿
2015/07/21 职场文书
nginx反向代理时如何保持长连接
2021/03/31 Servers