时间:2021-07-01 10:21:17 帮助过:311人阅读
前言
众所周知axios是vue-resource后出现的Vue请求数据的插件。vue更新到2.0之后,作者尤大就宣告不再对vue-resource更新,而是推荐的axios。更多的详细介绍大家可以参考这里://www.gxlcms.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 }) }); }
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
在ionic3中如何实现随机布局瀑布流
在JS中如何实现回到顶部效果
在JavaScript中如何实现元素滚动条循环追加内容
在nginx上部署vue项目(详细教程)
在js中如何实现转换时间戳格式
在vue中如何获取dom元素
在vue中如何实现阅读全文
在webpack上如何搭建vue项目
在nodejs中如何实现OAuth2.0授权服务认证
以上就是在vue中关于this指向问题(详细教程)的详细内容,更多请关注Gxl网其它相关文章!