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 构建客户/服务分离的链接模型中Table分页代码效率初探
Jan 22 Javascript
jQuery学习2 选择器的使用说明
Feb 07 Javascript
js设置文本框中焦点位置在最后的示例代码(简单实用)
Mar 04 Javascript
使用 TypeScript 重新编写的 JavaScript 坦克大战游戏代码
Apr 07 Javascript
js获取字符串字节数方法小结
Jun 09 Javascript
JavaScript制作简单的日历效果
Mar 10 Javascript
JS使用正则截取两个字符串之间的字符串实现方法详解
Jan 06 Javascript
angularjs实现时间轴效果的示例代码
Nov 29 Javascript
react-navigation 如何判断用户是否登录跳转到登录页的方法
Dec 01 Javascript
express默认日志组件morgan的方法
Apr 05 Javascript
JavaScript笛卡尔积超简单实现算法示例
Jul 30 Javascript
js实现自定义滚动条的示例
Oct 27 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
用PHP和ACCESS写聊天室(十)
2006/10/09 PHP
浅谈php错误提示及查错方法
2015/07/14 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
2018/05/23 PHP
PHP实现时间日期友好显示实现代码
2019/09/08 PHP
jQuery 表单验证插件formValidation实现个性化错误提示
2009/06/23 Javascript
js实现的复制兼容chrome和IE
2014/04/03 Javascript
纯javascript实现四方向文本无缝滚动效果
2015/06/16 Javascript
JavaScript性能优化之小知识总结
2015/11/20 Javascript
javascript针对不确定函数的执行方法
2015/12/16 Javascript
jQuery时间插件jquery.clock.js用法实例(5个示例)
2016/01/14 Javascript
jQuery实现点击水纹波动动画
2016/04/10 Javascript
详解AngularJs中$sce与$sceDelegate上下文转义服务
2016/09/21 Javascript
JavaScript之json_动力节点Java学院整理
2017/06/29 Javascript
vue.js使用v-model指令实现的数据双向绑定功能示例
2018/05/22 Javascript
详解Vue+ElementUI从零开始搭建自己的网站(一、环境搭建)
2019/04/30 Javascript
浅谈对于react-thunk中间件的简单理解
2019/05/01 Javascript
Vue响应式原理Observer、Dep、Watcher理解
2019/06/06 Javascript
Vue实现日历小插件
2019/06/26 Javascript
selenium+java中用js来完成日期的修改
2019/10/31 Javascript
解决Python中由于logging模块误用导致的内存泄露
2015/04/23 Python
python实现简易云音乐播放器
2018/01/04 Python
python实现音乐下载的统计
2018/06/20 Python
在Qt5和PyQt5中设置支持高分辨率屏幕自适应的方法
2019/06/18 Python
Python scipy的二维图像卷积运算与图像模糊处理操作示例
2019/09/06 Python
python栈的基本定义与使用方法示例【初始化、赋值、入栈、出栈等】
2019/10/24 Python
Python调用graphviz绘制结构化图形网络示例
2019/11/22 Python
python将下载到本地m3u8视频合成MP4的代码详解
2020/11/24 Python
python 生成正态分布数据,并绘图和解析
2020/12/21 Python
美国摄影爱好者购物网站:Focus Camera
2016/10/21 全球购物
彪马美国官网:PUMA美国
2017/03/09 全球购物
高职助产应届生自荐信
2013/09/24 职场文书
小学生考试获奖感言
2014/01/30 职场文书
学长教您写论文:经验总结
2019/07/09 职场文书
常用的Python代码调试工具总结
2021/06/23 Python
postgres之jsonb属性的使用操作
2021/06/23 PostgreSQL
javascript对象3个属性特征
2021/11/17 Javascript