在 Vue 中实现一个计时器,可以通过 setInterval
或 setTimeout
方法来实现,具体步骤如下:
- 在 data 中定义一个变量来保存当前时间,初值为 0,例如 timer:
data() { return { timer: 0, }; },
- 在 mounted 钩子函数中启动计时器:
mounted() { setInterval(() => { this.timer++; }, 1000); },
- 在模板中,通过 Mustache 语法(
{{}}
)将 timer 变量显示出来:
<template> <div> <span>{{ formatTime(timer) }}</span> </div> </template> <script> export default { data() { return { timer: 0, }; }, mounted() { setInterval(() => { this.timer++; }, 1000); }, methods: { formatTime(time) { // 将时间格式化为 hh:mm:ss 的形式 let hour = Math.floor(time / 3600); let minute = Math.floor((time - hour * 3600) / 60); let second = Math.floor(time - hour * 3600 - minute * 60); return `${hour.toString().padStart(2, '0')}:${minute .toString() .padStart(2, '0')}:${second.toString().padStart(2, '0')}`; }, }, }; </script>