<template>
<div class="timer">
<p>{{ formatTime }}</p>
<button @click="startTimer" v-if="!isTiming">开始计时</button>
<button @click="stopTimer" v-else>停止计时</button>
</div>
</template>
<script>
export default {
data() {
return {
isTiming: false,
time: 0,
timer: null
}
},
computed: {
formatTime() {
const minutes = Math.floor(this.time / 60)
const seconds = this.time % 60
return `${minutes}:${seconds < 10 ? '0' : ''}${seconds}`
}
},
methods: {
startTimer() {
this.isTiming = true
this.timer = setInterval(() => {
this.time++
}, 1000)
},
stopTimer() {
this.isTiming = false
clearInterval(this.timer)
}
}
}
</script>
<style>
.timer {
text-align: center;
font-size: 24px;
margin-top: 50px;
}
</style>
在Uni-app中实现计时器效果
蜕变菜鸟2024-08-27 17:46
相关推荐
fury_1231 天前
tsfile.raw提示喝拿铁写前端1 天前
从面条代码到抽象能力:一个小表单场景里的前端成长四阶段LXA08091 天前
Vue 3中使用JSX执携1 天前
Vue Router (历史模式)是梦终空1 天前
vue下载依赖报错npm ERR node-sass@4.14.1 postinstall: `node scripts/build.js`的解决方法依米_1 天前
一文带你剖析 Promise.then all 实现原理,状态机、发布订阅模式完美实现异步编程陈陈小白1 天前
npm run dev报错Error: listen EADDRINUSE: address already in use :::8090G018_star sky♬1 天前
使用npm运行js脚本覆盖vue依赖包杂鱼豆腐人1 天前
pnpm环境下防止误使用npm的方法