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 相关文章推荐
JavaScript 滚轮事件使用说明
Mar 07 Javascript
jQuery中需要注意的细节问题小结
Dec 06 Javascript
javascript判断是否按回车键并解决浏览器之间的差异
May 13 Javascript
Javascript毫秒数用法实例
Feb 05 Javascript
js判断手机号运营商的方法
Oct 23 Javascript
分享经典的JavaScript开发技巧
Nov 21 Javascript
完美解决js传递参数中加号和&号自动改变的方法
Oct 11 Javascript
ES6中Proxy代理用法实例浅析
Apr 06 Javascript
js-FCC算法-No repeats please字符串的全排列(详解)
May 02 Javascript
原生js实现trigger方法示例代码
May 22 Javascript
微信小程序转发事件实现解析
Oct 22 Javascript
jQuery模仿ToDoList实现简单的待办事项列表
Dec 30 jQuery
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
星际争霸任务指南——虫族
2020/03/04 星际争霸
PHP 高手之路(二)
2006/10/09 PHP
使用apache模块rewrite_module (转)
2007/02/14 PHP
php加密解密函数authcode的用法详细解析
2013/10/28 PHP
网站防止被刷票的一些思路与方法
2015/01/08 PHP
jQuery 获取URL的GET参数值的小例子
2013/04/18 Javascript
JavaScript中document.forms[0]与getElementByName区别
2015/01/21 Javascript
Bootstrap Chart组件使用教程
2016/04/28 Javascript
Form表单按回车自动提交表单的实现方法
2016/11/18 Javascript
JS正则表达式修饰符中multiline(/m)用法分析
2016/12/27 Javascript
基于 Bootstrap Datetimepicker 联动
2017/08/03 Javascript
vue.js评论发布信息可插入QQ表情功能
2017/08/08 Javascript
React Native中Navigator的使用方法示例
2017/10/13 Javascript
JS实现验证码倒计时的注册页面
2018/01/02 Javascript
vue-cli2.9.3 详细教程
2018/04/23 Javascript
详解微信小程序中var、let、const用法与区别
2020/01/11 Javascript
[01:11:27]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Optic
2018/04/03 DOTA
Python中的推导式使用详解
2015/06/03 Python
快速查询Python文档方法分享
2017/12/27 Python
用 Python 连接 MySQL 的几种方式详解
2018/04/04 Python
python爬取微信公众号文章
2018/08/31 Python
简单了解python中对象的取反运算符
2019/07/01 Python
使用Python给头像加上圣诞帽或圣诞老人小图标附源码
2019/12/25 Python
Python环境管理virtualenv&virtualenvwrapper的配置详解
2020/07/01 Python
详解修改Anaconda中的Jupyter Notebook默认工作路径的三种方式
2021/01/24 Python
世界上最大的糖果店:Dylan’s Candy Bar
2017/11/07 全球购物
全球立体声:World Wide Stereo
2018/09/29 全球购物
xml有哪些解析技术?区别是什么
2016/04/26 面试题
高一自我鉴定
2013/12/17 职场文书
员工工作表现评语
2014/04/26 职场文书
小学校园广播稿(3篇)
2014/09/19 职场文书
公务员党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
离职证明范本
2015/06/12 职场文书
新课程改革心得体会
2016/01/22 职场文书
javaScript Array api梳理
2021/03/31 Javascript
vue项目支付功能代码详解
2022/02/18 Vue.js