本文介绍: uniapp 实现定时器的2种方式
无线循环计时器 setInterval
//创建定时器 该定时器必须手动取消否则会造成泄漏一直存在
let time = setInterval(() => {
Array.from(this.list).forEach((item)=>{
item.title +=1
})
}, 2000)
//取消定时器
clearInterval(time)
//可以在页面销毁回调进行取消 注意let 标识局部变量 这边取消需要定义为 var
export default {beforeDestroy() {
clearInterval(this.time)
}
}
倒计时 setTimeOut 只执行一次
setTimeout(()=>{//到期后执行
Array.from(this.list).forEach((item)=>{
item.title +=1
})
},2000)
示例
<template>
<view>
<view>
</view>
<view class="line" v-for="(item,i) in list" :key="i" @click="itemClick(key)">
<image class="imageStype" src="../../static/logo.png"></image>
<text class="textHellow">{{item.title}}</text>
</view>
</view>
</template>
<script>
export default {
data() {
return {
list: [{
title: 0
}, {
title: 1
}, {
title: 2
}]
}
},
methods: {
itemClick(ii) {
// setInterval(() => {
// Array.from(this.list).forEach((item)=>{
// item.title +=1
// })
// }, 2000)
setTimeout(()=>{
Array.from(this.list).forEach((item)=>{
item.title +=1
})
},2000)
}
}
}
</script>
<style>
.imageStype {
width: 120rpx;
height: 120rpx;
margin-left: 40rpx;
}
.line {
margin-top: 20rpx;
display: flex;
flex-direction: row;
padding-top: 40rpx;
padding-bottom: 40rpx;
width: 670rpx;
margin-left: 40rpx;
border: 2rpx solid gray;
border-radius: 16rpx;
background-color: aliceblue;
box-shadow: 8rpx 8rpx 4rpx 0 gray;
}
.textHellow {
margin-left: 20rpx;
font-weight: bold;
font-size: 32rpx;
}
</style>
大致效果 列表点击后过2秒 标题数值变化
原文地址:https://blog.csdn.net/qq_35644925/article/details/135655070
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_57980.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。