在vue3中使用js实现在页面初始化的时候实现一个计时器,初始值为00:00:00,并按秒递增
时间: 2024-09-23 19:14:38 浏览: 42
vue3实现塔罗牌翻牌
在 Vue3 中,你可以使用 JavaScript 的 `setInterval` 函数结合组件的生命周期钩子函数 `mounted` 来创建一个简单的计时器。下面是一个基本的例子:
首先,在你的组件模板里声明一个显示时间的元素,比如 `<p id="timer"></p>`。
然后,在 `data` 部分定义一个表示当前时间的对象:
```html
<script setup>
import { ref } from 'vue';
const currentTime = ref({ hours: 0, minutes: 0, seconds: 0 });
</script>
<!-- 模板部分 -->
<div>
<p id="timer">{{ formatTime(currentTime.value) }}</p>
</div>
```
接下来,在 `methods` 或者外部的计算属性里定义更新时间和格式化时间的方法:
```javascript
<script setup>
import { onMounted } from 'vue';
import { ref } from 'vue';
// 更新时间的函数
function updateTimer() {
const newSeconds = (currentTime.value.seconds + 1) % 60;
if (newSeconds === 0) {
// 如果秒到了60,则加分钟并更新秒数
currentTime.value.seconds = 0;
currentTime.value.minutes = (currentTime.value.minutes + 1) % 60;
} else {
currentTime.value.seconds = newSeconds;
}
}
// 格式化时间的辅助函数
function formatTime(timeObj) {
return `${timeObj.hours.toString().padStart(2, '0')}:${timeObj.minutes.toString().padStart(2, '0')}:${timeObj.seconds.toString().padStart(2, '0')}`;
}
</script>
<!-- 在 mounted 生命周期钩子里启动计时器 -->
<script>
onMounted(() => {
setInterval(updateTimer, 1000);
});
</script>
```
在这个例子中,`mounted` 钩子会在组件挂载到 DOM 上时启动计时器,每秒调用一次 `updateTimer` 函数,更新时间和显示在页面上。
阅读全文