问题背景
在vue中使用axios做网络请求的时候,会遇到this不指向vue,而为undefined。
如下图所示,我们有一个 login 方法,希望在登录成功之后路由到主页,但通过 this.$router 获取路由器出错。
解决方案
使用箭头函数替代普通函数,ES6中的箭头函数 “=>” 内部的 this 属于词法作用域,由上下文确定(也就是由外层调用者vue来确定)。
改成如下图所示,我们看到 this.router 已经正确的返回了路由器对象。
so, 遇到类似问题的朋友们,箭头函数用起来。