vue商品秒杀倒计时怎么写
时间: 2023-07-10 20:29:18 浏览: 179
Vue商品秒杀倒计时的实现步骤与纯JavaScript类似,主要是在Vue组件中使用数据绑定和计算属性来更新倒计时。下面是一个简单的Vue组件实现示例:
```html
<template>
<div>
<div v-if="isOver">秒杀已结束!</div>
<div v-else>
距离秒杀结束还有:
<span>{{ hours }}</span>小时
<span>{{ minutes }}</span>分
<span>{{ seconds }}</span>秒
</div>
</div>
</template>
<script>
export default {
data() {
return {
endTime: new Date(2021, 7, 1, 23, 59, 59) // 秒杀结束时间
};
},
computed: {
isOver() {
return this.endTime <= new Date(); // 判断秒杀是否已经结束
},
countdown() {
var diff = Math.floor((this.endTime - new Date()) / 1000); // 计算时间差
var hours = Math.floor(diff / (60 * 60)); // 计算小时数
var minutes = Math.floor((diff % (60 * 60)) / 60); // 计算分钟数
var seconds = diff % 60; // 计算秒数
return { hours, minutes, seconds }; // 返回时、分、秒的对象
},
hours() {
return this.addZero(this.countdown.hours); // 补零处理
},
minutes() {
return this.addZero(this.countdown.minutes); // 补零处理
},
seconds() {
return this.addZero(this.countdown.seconds); // 补零处理
}
},
methods: {
addZero(num) {
return num < 10 ? "0" + num : num; // 补零函数
}
}
};
</script>
```
在上面的示例代码中,计算属性`isOver`用于判断秒杀是否已经结束,计算属性`countdown`用于计算时、分、秒的值,并返回一个包含时、分、秒的对象。然后,通过计算属性`hours`、`minutes`、`seconds`将时、分、秒的值补零处理后显示在页面上。最后,使用`setInterval`定时器每隔一秒更新一次倒计时。
阅读全文