js中的 this指向问题
这是什么
本文仅记录我寄己在初次使用uni-app做app开发所掉的坑的一个记录。
问题描述:因为使用chrome的密码自动填充会改变input框的样式,很丑,我搞不定选择绕路,不过我也试过挣扎一番(根据网上指引改了一下默认的样式,可能因为在uni-app中有点问题,没用),很丑。
怎么解决
绕路:不让浏览器帮我自动填充,我寄己搞,使用localStorage缓存登录成功的信息,an后对页面加载进行监听再取出本地缓存中的数据,因为我对input文本框的值做了双向绑定,所以实现起来也就很简单,此时的我认为非常完美。
so just do it
ok,模拟登录没问题,本地缓存也ok。
试一下模拟用户重新打开应用自动填充的效果?
理想中的完美运行在现实总是出点小插曲,你说程序为什么就不能顺一下我的意思呢,唉没办法debug咯。
行吧,那先看看代码
嗯,咋一看没啥问题,为什么就不行了呢。
难道是this.password赋值出了问题?
此时发挥我200%的聪明才智---------问大佬
大佬告诉我把指向改一下试试,(let that = this )然后
emmmmmmmmmmm,行了
本着我内心那强烈(为数不多)的探究欲望,稍微再思考一下下吧,经查证:
这里的 that 应该是指向当前vue实例的,而 this ??这是个啥,那么也就很好解释了 this.password = res.data.password ; 根本没有对我的data模型数据进行修改,password和account 还是 “”,所以才导致先前的情况发生。由此我又想起了之前 使用 axios 做异步请求时也发生过同样的事情,不长记性的锅。
最后:感谢大佬的指点、与帮助。
最后的最后问自己:这样做真的安全么?