如何写一个用于vue的分秒计时器
时间: 2023-07-04 22:09:02 浏览: 98
vue 计时器组件的实现代码
你可以使用Vue.js的计算属性和生命周期函数来实现分秒计时器。
首先,在Vue组件中定义一个计算属性来计算当前时间和结束时间之间的时间差,并将其显示在页面上。
```html
<template>
<div>
<p>倒计时:{{countdown}}</p>
</div>
</template>
<script>
export default {
data() {
return {
endTime: new Date('2021-12-31 23:59:59').getTime()
}
},
computed: {
countdown() {
let nowTime = new Date().getTime()
let timeDiff = this.endTime - nowTime
let seconds = Math.floor((timeDiff / 1000) % 60)
let minutes = Math.floor((timeDiff / 1000 / 60) % 60)
return `${minutes}分${seconds}秒`
}
}
}
</script>
```
然后,在组件的生命周期函数中,使用`setInterval()`函数来每秒更新一次计算属性中的时间差,以达到倒计时的效果。
```html
<template>
<div>
<p>倒计时:{{countdown}}</p>
</div>
</template>
<script>
export default {
data() {
return {
endTime: new Date('2021-12-31 23:59:59').getTime(),
timer: null
}
},
computed: {
countdown() {
let nowTime = new Date().getTime()
let timeDiff = this.endTime - nowTime
let seconds = Math.floor((timeDiff / 1000) % 60)
let minutes = Math.floor((timeDiff / 1000 / 60) % 60)
return `${minutes}分${seconds}秒`
}
},
mounted() {
this.timer = setInterval(() => {
if (this.countdown === '0分0秒') {
clearInterval(this.timer)
alert('时间到了!')
}
}, 1000)
},
beforeDestroy() {
clearInterval(this.timer)
}
}
</script>
```
最后,在组件的`mounted()`生命周期函数中启动定时器,在组件的`beforeDestroy()`生命周期函数中清除定时器。
这样,你就可以在Vue.js中创建一个简单的分秒计时器了。
阅读全文