gpt4 book ai didi

javascript - 如何在 Vue.js 中创建一个简单的 10 秒倒计时

转载 作者:行者123 更新时间:2023-11-30 07:49:26 25 4
gpt4 key购买 nike

我想做一个从 10 到 0 的简单倒计时

我在网上找到了使用普通 javascript 的解决方案,但假设我想在 Vue 中完成。 Jquery中的解决方案

Create a simple 10 second countdown

<template>
{{ countDown }}

</template>

<script>
export default {
computed: {
countDown() {
// How do i do the simple countdown here?
}

}

}

</script>

如何在 Vue.js 中重新创建相同的功能?

谢谢

最佳答案

虽然公认的答案有效而且很棒,但实际上可以通过利用 Vue.js 以稍微简单的方式实现 watchers :

<template>
{{ timerCount }}
</template>

<script>

export default {

data() {
return {
timerCount: 30
}
},

watch: {

timerCount: {
handler(value) {

if (value > 0) {
setTimeout(() => {
this.timerCount--;
}, 1000);
}

},
immediate: true // This ensures the watcher is triggered upon creation
}

}
}

</script>

使用这种方法的好处是可以通过简单地设置timerCount的值来立即重置定时器。

如果你想播放/暂停计时器,那么你可以这样实现(注意 - 这不是一个完美的解决方案,因为它会四舍五入到最接近的秒数):

<template>
{{ timerCount }}
</template>

<script>

export default {

data() {
return {
timerEnabled: true,
timerCount: 30
}
},

watch: {

timerEnabled(value) {
if (value) {
setTimeout(() => {
this.timerCount--;
}, 1000);
}
},

timerCount: {
handler(value) {

if (value > 0 && this.timerEnabled) {
setTimeout(() => {
this.timerCount--;
}, 1000);
}

},
immediate: true // This ensures the watcher is triggered upon creation
}

}

methods: {

play() {
this.timerEnabled = true;
},

pause() {
this.timerEnabled = false;
}

}

}

</script>

关于javascript - 如何在 Vue.js 中创建一个简单的 10 秒倒计时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55773602/

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