vue3怎么同时定义三个定时器分别为10秒,20秒,30秒,前端根据下拉框选择后点击执行对应定时器
时间: 2023-08-05 12:28:52 浏览: 75
vue 计时器组件的实现代码
你可以在Vue3中使用`setInterval()`来实现这个功能。首先,你需要在data中定义一个变量来记录选择的定时器时间,以及三个定时器的ID:
```javascript
data() {
return {
selectedTimer: null, // 记录选择的定时器时间
timer10: null, // 记录10秒定时器ID
timer20: null, // 记录20秒定时器ID
timer30: null, // 记录30秒定时器ID
}
},
```
然后,你可以在mounted钩子函数中初始化三个定时器:
```javascript
mounted() {
this.timer10 = setInterval(() => {
console.log('执行10秒定时器')
// 执行10秒定时器操作
}, 10000)
this.timer20 = setInterval(() => {
console.log('执行20秒定时器')
// 执行20秒定时器操作
}, 20000)
this.timer30 = setInterval(() => {
console.log('执行30秒定时器')
// 执行30秒定时器操作
}, 30000)
},
```
接着,你需要在模板中添加一个下拉框,用于选择定时器时间,并绑定`selectedTimer`变量:
```html
<select v-model="selectedTimer">
<option value="10">10秒</option>
<option value="20">20秒</option>
<option value="30">30秒</option>
</select>
<button @click="startTimer">开始定时器</button>
```
最后,你可以在methods中定义`startTimer()`方法,根据选择的定时器时间来启动对应的定时器:
```javascript
methods: {
startTimer() {
clearInterval(this.timer10)
clearInterval(this.timer20)
clearInterval(this.timer30)
if (this.selectedTimer === '10') {
this.timer10 = setInterval(() => {
console.log('执行10秒定时器')
// 执行10秒定时器操作
}, 10000)
} else if (this.selectedTimer === '20') {
this.timer20 = setInterval(() => {
console.log('执行20秒定时器')
// 执行20秒定时器操作
}, 20000)
} else if (this.selectedTimer === '30') {
this.timer30 = setInterval(() => {
console.log('执行30秒定时器')
// 执行30秒定时器操作
}, 30000)
}
}
},
```
这样,你就可以根据下拉框选择来启动对应的定时器了。在方法中,我们先清除当前正在运行的定时器,然后根据选择的定时器时间来启动对应的定时器。注意,这里的定时器ID需要重新赋值给对应的变量,以便在下次启动时清除。
阅读全文