问题背景
在使用setInterval方法设置定时器过程中,遇到了取不到data值的问题。
求解过程中发现vue.js开发中也存在类似问题。
原因在于:在vue中,定时器的this是指向window的,而非page。
考虑到二者之间相似性,通过箭头函数解决了问题。
同样的,在设置定时器前通过
var that = this,而后通过that取值效果是一样的。
var timer = setInterval(() => {
let time = this.data.time - 1
this.setData({
time: time,
btn_con: '发送验证码(' + time + ')',
})
if (time == 0) {
clearInterval(timer)
this.setData({
time: 61,
btn_con: '发送验证码',
disable: false
})
}
}, 1000)