在vue3中使用js实现在页面显示一个动态的计时器,初始值为00:00:00,并按秒递增
时间: 2024-09-23 09:15:45 浏览: 91
在 Vue 3 中,你可以使用 JavaScript 和 Vue 的响应式特性来创建一个动态的计时器组件。首先,你需要设置一个计算属性 `currentTime` 来存储和更新计时时间,然后在模板中展示这个计算属性。这里是一个简单的示例:
1. 安装依赖:
```bash
npm install vue
```
2. 创建一个名为 `Countdown.vue` 的文件,添加以下内容:
```html
<template>
<div>
<h2>计时器: {{ currentTime }} 秒</h2>
</div>
</template>
<script>
export default {
data() {
return {
startTime: new Date().getTime(), // 初始时间设为当前时间
intervalId: null,
};
},
computed: {
currentTime() {
const now = new Date().getTime();
const elapsedSeconds = Math.floor((now - this.startTime) / 1000);
// 如果超过了整分钟,转换成"HH:mm:ss"
let hours = Math.floor(elapsedSeconds / 3600);
let minutes = Math.floor((elapsedSeconds % 3600) / 60);
seconds = elapsedSeconds % 60;
if (hours < 10) hours = "0" + hours;
if (minutes < 10) minutes = "0" + minutes;
if (seconds < 10) seconds = "0" + seconds;
return `${hours}:${minutes}:${seconds}`;
},
},
mounted() {
this.intervalId = setInterval(() => {
this.currentTime;
}, 1000); // 每秒更新一次
},
beforeDestroy() {
clearInterval(this.intervalId); // 在组件卸载前停止计时器
},
};
</script>
```
在这个例子中,我们首先设置了 `startTime` 为当前时间,然后每秒通过 `intervalId` 调用 `currentTime` 计算属性来更新显示的时间。
阅读全文