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 29 Javascript
jquery随机展示头像代码
Dec 21 Javascript
JavaScript的漂亮的代码片段
Jun 05 Javascript
用jQuery模拟select下拉框的简单示例代码
Jan 26 Javascript
JS实现带提示的星级评分效果完整实例
Oct 30 Javascript
jQuery判断checkbox选中状态
May 12 Javascript
详细探究ES6之Proxy代理
Jul 22 Javascript
jQuery中ScrollTo用法示例
Sep 04 Javascript
JS基于for语句编写的九九乘法表示例
Jan 04 Javascript
JS处理一些简单计算题
Feb 24 Javascript
VSCode使用之Vue工程配置eslint
Apr 30 Javascript
Vue混入mixins滚动触底的方法
Nov 22 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设计模式之单例模式使用示例
2014/01/20 PHP
php实现给图片加灰色半透明效果的方法
2014/10/20 PHP
php魔术变量用法实例详解
2014/11/13 PHP
php通过递归方式复制目录和子目录的方法
2015/03/13 PHP
Symfony核心类概述
2016/03/17 PHP
php 猴子摘桃的算法
2017/06/20 PHP
浅析Js(Jquery)中,字符串与JSON格式互相转换的示例(直接运行实例)
2013/07/09 Javascript
Javascript call和apply区别及使用方法
2013/11/14 Javascript
Firefox中使用outerHTML的2种解决方法
2014/06/07 Javascript
jQuery实现的向下图文信息滚动效果
2015/05/03 Javascript
在JS方法中返回多个值的方法汇总
2015/05/20 Javascript
jQuery获取剪贴板内容的方法
2016/06/16 Javascript
使用nodejs中httpProxy代理时候出现404异常的解决方法
2016/08/15 NodeJs
jquery操作ID带有变量的节点实例
2016/12/07 Javascript
Vue 2.0学习笔记之Vue中的computed属性
2017/10/16 Javascript
vue中的ref和$refs的使用
2018/11/22 Javascript
PWA介绍及快速上手搭建一个PWA应用的方法
2019/01/27 Javascript
超详细动手搭建一个VuePress 站点及开启PWA与自动部署的方法
2019/01/27 Javascript
从零学Python之引用和类属性的初步理解
2014/05/15 Python
Python 循环语句之 while,for语句详解
2018/04/23 Python
Python使用pandas处理CSV文件的实例讲解
2018/06/22 Python
python 定义给定初值或长度的list方法
2018/06/23 Python
python根据多个文件名批量查找文件
2019/08/13 Python
python程序实现BTC(比特币)挖矿的完整代码
2021/01/20 Python
美国生日蛋糕店:Bake Me A Wish!
2017/02/08 全球购物
爱尔兰橄榄球店:Irish Rugby Store
2019/12/05 全球购物
医学类个人求职信范文
2014/02/05 职场文书
工程力学专业自荐信范文
2014/03/17 职场文书
《搭石》教学反思
2014/04/07 职场文书
2014年端午节演讲稿范文
2014/05/23 职场文书
企业年检委托书范本
2014/10/14 职场文书
2015-2016年小学教导工作总结
2015/07/21 职场文书
2019公司借款合同范本2篇!
2019/07/24 职场文书
python 进阶学习之python装饰器小结
2021/09/04 Python
python机器学习创建基于规则聊天机器人过程示例详解
2021/11/02 Python
Hive日期格式转换方法总结
2022/06/25 数据库