uniapp 小程序实现列表多个批量倒计时
时间: 2023-09-21 21:10:31 浏览: 215
小程序实现列表多个批量倒计时
要实现多个批量倒计时,可以考虑使用定时器和循环遍历的方式来处理。
具体实现步骤如下:
1. 在页面中定义一个数组,用于存储需要倒计时的数据。
2. 在页面的 onShow 生命周期函数中,遍历数组,为每个数据项设置一个定时器,并将定时器的 id 存储到对应的数据项中。
3. 定时器的回调函数中,更新对应数据项的倒计时时间,并判断倒计时是否结束,如果结束,则清除定时器。
4. 当页面 onHide 时,清除所有定时器,防止定时器持续运行,浪费资源。
以下是示例代码:
```html
<template>
<view>
<view v-for="(item, index) in list" :key="index">
<text>{{ item.name }}</text>
<text>{{ item.remainingTime }}</text>
</view>
</view>
</template>
<script>
export default {
data() {
return {
list: [
{ name: 'item1', remainingTime: 60, timerId: null },
{ name: 'item2', remainingTime: 120, timerId: null },
{ name: 'item3', remainingTime: 180, timerId: null }
]
}
},
onShow() {
this.list.forEach((item, index) => {
const timerId = setInterval(() => {
item.remainingTime--
if (item.remainingTime <= 0) {
clearInterval(item.timerId)
item.timerId = null
}
}, 1000)
item.timerId = timerId
})
},
onHide() {
this.list.forEach((item, index) => {
if (item.timerId) {
clearInterval(item.timerId)
item.timerId = null
}
})
}
}
</script>
```
在上述代码中,list 数组中存储了三个数据项,每个数据项包含了需要倒计时的时间和对应的定时器 id。在页面的 onShow 生命周期函数中,遍历 list 数组,为每个数据项设置一个定时器,并将定时器 id 存储到对应的数据项中。定时器的回调函数中,更新对应数据项的倒计时时间,并判断倒计时是否结束,如果结束,则清除定时器。当页面 onHide 时,清除所有定时器,防止定时器持续运行,浪费资源。
阅读全文