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中的数据问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。