gpt4 book ai didi

vue.js - 如何在Vue3中做一个简单的倒计时?

转载 作者:行者123 更新时间:2023-12-02 02:25:57 40 4
gpt4 key购买 nike

我一直在尝试使用 Vue3 设置一个简单的倒计时,但我无法使其正常工作。这在 React 中很容易实现,但我根本不理解 Vue 中的逻辑(3)。所以,我想出了这个:

<script>
export default {
data() {
return {
timer: 10,
interval: ""
}
},
emits: ["start-game"],
methods: {
startGame() {
this.$emit("start-game")

this.startTimer()
},
startTimer() {
clearInterval(this.interval)

while(this.timer != 0) {
this.interval = setInterval(() => {
this.timer--
}, 1000)
}
}
}
}
</script>

您可能希望这会起作用,但它会创建一个无限循环。不知何故,你不能只在 vue 方法中使用 while。如果我删除 while 它实际上会无限期倒计时,但我需要其他函数在计时器用完(命中 0)后运行。 Vue 的处理方式是什么?

最佳答案

不要认为这与 React 或 Vue 有任何关系。您需要在 setInterval 回调中清除您的间隔,以便它知道何时停止。不需要 while 循环:

this.interval = setInterval(() => {
if (this.timer === 0) {
clearInterval(this.interval)
} else {
this.timer--
}
}, 1000)

另请查看此纯 js 示例:

let timer = 10;
let interval = setInterval(() => {
if (timer === 0) {
clearInterval(interval)
} else {
timer--
console.log(timer)
}
}, 1000)

关于vue.js - 如何在Vue3中做一个简单的倒计时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65637458/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com