Vue(定时器)解决mounted不能获取到data中的数据问题
vue中data定义
data(){ return{ isok:10, } }
在vue中使用定时器如下mounted是钩子函数
mounted(){ console.log(this.isok)//能获取isok10 setInterval(function(){ console.log(this.isok)//不能获取isok },3000); }
这是为什么呢?
原因就是:定时器的this是指向window的。
那有什么方法来解决这个问题呢?答案是有的,两种
第一种:
用箭头函数:箭头函数中的this指向是固定不变(定义函数时的指向),在vue中指向vue;
mounted(){ setInterval(()=>{consolog.log(this.isok)},3000); }
第二种:
使用varthat=this,就可以正常调用了。
mounted(){ varthat=this; setInterval(()=>{ console.log(that.isok) },3000); }
补充知识:vue根据指定字段排序使用computed方法
我就废话不多说了,大家还是直接看代码吧~
{{stu}}
以上这篇Vue(定时器)解决mounted不能获取到data中的数据问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。