微信小程序 实现倒计时 切换页面不影响
时间: 2023-10-05 20:12:56 浏览: 216
微信小程序倒计时
实现倒计时可以使用setInterval()函数来定时执行代码。在小程序中,我们可以将倒计时的时间保存在Page对象的data中,然后在onLoad()函数中启动定时器,每隔一秒钟更新data中的倒计时时间。在页面切换时,可以使用wx.navigateTo()和wx.redirectTo()函数来进行页面跳转,这些函数不会影响定时器的执行。下面是一个实现倒计时并切换页面的示例代码:
```
// pages/index/index.js
Page({
data: {
countdown: 60, // 倒计时时间
},
onLoad: function () {
// 启动定时器
this.timer = setInterval(() => {
if (this.data.countdown > 0) {
this.setData({
countdown: this.data.countdown - 1,
});
} else {
clearInterval(this.timer);
wx.navigateTo({
url: '/pages/result/result',
});
}
}, 1000);
},
onUnload: function () {
// 页面卸载时清除定时器
clearInterval(this.timer);
},
navigateToResult: function () {
// 手动跳转到结果页面
clearInterval(this.timer);
wx.navigateTo({
url: '/pages/result/result',
});
},
redirectToResult: function () {
// 手动跳转到结果页面
clearInterval(this.timer);
wx.redirectTo({
url: '/pages/result/result',
});
},
});
// pages/result/result.js
Page({
// 结果页面代码
});
```
在上面的代码中,onLoad()函数启动了一个定时器,每隔一秒钟更新data中的countdown值,当countdown值为0时,清除定时器并跳转到结果页面。在页面卸载时,需要清除定时器以避免内存泄漏。可以使用wx.navigateTo()和wx.redirectTo()函数手动跳转到结果页面,这些函数不会影响定时器的执行。
阅读全文