vue使用axios时关于this的指向问题详解


Posted in Javascript onDecember 22, 2017

前言

众所周知axios是vue-resource后出现的Vue请求数据的插件。vue更新到2.0之后,作者尤大就宣告不再对vue-resource更新,而是推荐的axios。更多的详细介绍大家可以参考这里:https://3water.com/article/109444.htm

本文主要介绍了关于vue使用axios时this的指向问题,下面话不多说了,来一起看看详细的介绍吧。

1.解决办法

在vue中使用axios做网络请求的时候,会遇到this不指向vue,而为undefined,可以使用箭头函数"=>"来解决。如下:

methods: {
 loginAction(formName) {
 this.$axios.post('http://127.0.0.1/u/subLogin', {
  username: this.username,
  password: this.password
 })
  .then(function(response){
  console.log(this); //这里 this = undefined
  })
  .catch((error)=> {
  console.log(error); //箭头函数"=>"使this指向vue
  });

 });
 }
}

2. 原因

ES6中的 箭头函数 "=>" 内部的this是词法作用域,由上下文确定(也就是由外层调用者vue来确定)。

3. 题外话

使用"=>"函数,就可以告别之前的两种写法了:

bind(this)来改变匿名函数的this指向

hack写法 var _this= this;

loginAction(formName) {
 var _this= this;
 this.$axios.post("...")
 .then(function(response){
  console.log(_this); //这里 _this 指向vue
 })
 });
 }

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
从零开始学习jQuery (二) 万能的选择器
Oct 01 Javascript
js 动态文字滚动的例子
Jan 17 Javascript
jQuery EasyUI API 中文文档 - Tree树使用介绍
Nov 19 Javascript
33个优秀的 jQuery 图片展示插件分享
Mar 14 Javascript
js Map List 遍历使用示例
Jul 10 Javascript
js获取当前路径的简单示例代码
Jan 08 Javascript
jquery单行文字向上滚动效果示例
Mar 06 Javascript
jquery选择器需要注意的问题
Nov 26 Javascript
javascript实现table选中的行以指定颜色高亮显示的方法
May 13 Javascript
JavaScript中数据结构与算法(五):经典KMP算法
Jun 19 Javascript
浅析JavaScript中命名空间namespace模式
Jun 22 Javascript
AngularJS实现select的ng-options功能示例
Jul 12 Javascript
Javascript中JSON数据分组优化实践及JS操作JSON总结
Dec 22 #Javascript
vue init失败简单解决方法(终极版)
Dec 22 #Javascript
使用axios实现上传图片进度条功能
Dec 21 #Javascript
详解使用webpack构建多页面应用
Dec 21 #Javascript
使用ajax的post同步执行(实现方法)
Dec 21 #Javascript
jQuery Validate插件ajax方式验证输入值的实例
Dec 21 #jQuery
原生js+cookie实现购物车功能的方法分析
Dec 21 #Javascript
You might like
Thinkphp模板标签if和eq的区别和比较实例分析
2015/07/01 PHP
php实现curl模拟ftp上传的方法
2015/07/29 PHP
Gambit vs CL BO3 第一场 2.13
2021/03/10 DOTA
Js之软键盘实现(js源码)
2007/01/30 Javascript
基于jQuery的左右滚动实现代码
2010/12/03 Javascript
JS实现随机化快速排序的实例代码
2013/08/01 Javascript
jQuery之过滤元素操作小结
2013/11/30 Javascript
JS对象与json字符串格式转换实例
2014/10/28 Javascript
Js为表单动态添加节点内容的方法
2015/02/10 Javascript
JS网页在线获取鼠标坐标值的方法
2015/02/28 Javascript
jQuery+ajax实现无刷新级联菜单示例
2015/05/21 Javascript
JavaScript中两个字符串的匹配
2016/06/08 Javascript
JSON与js对象序列化实例详解
2017/03/16 Javascript
JavaScript实现简单的树形菜单效果
2017/06/23 Javascript
vue.js 中使用(...)运算符报错的解决方法
2018/08/09 Javascript
Vue实现剪贴板复制功能
2019/12/31 Javascript
[54:19]完美世界DOTA2联赛PWL S2 Magma vs PXG 第二场 11.28
2020/12/01 DOTA
python实现复制整个目录的方法
2015/05/12 Python
python实现上传下载文件功能
2020/11/19 Python
Python subprocess模块常见用法分析
2018/06/12 Python
python保存二维数组到txt文件中的方法
2018/11/15 Python
解决PyCharm的Python.exe已经停止工作的问题
2018/11/29 Python
python利用itertools生成密码字典并多线程撞库破解rar密码
2019/08/12 Python
Pytorch卷积层手动初始化权值的实例
2019/08/17 Python
python查看数据类型的方法
2019/10/12 Python
用python爬虫批量下载pdf的实现
2020/12/01 Python
HTML5在a标签内放置块级元素示例代码
2013/08/23 HTML / CSS
HTML5 背景的显示区域实现
2020/07/09 HTML / CSS
英国门把手公司:Door Handle Company
2019/05/12 全球购物
自荐书模板
2013/12/15 职场文书
小学家长会邀请函
2014/01/23 职场文书
认识深刻的检讨书
2014/02/16 职场文书
国庆横幅标语
2014/10/08 职场文书
2015年小学体育工作总结
2015/05/22 职场文书
运动会加油稿30字
2015/07/21 职场文书
诚信教育主题班会
2015/08/13 职场文书