vue js countdown timer
<template>
{{ countDown }}
<button type="button" v-on:click="countdown = 5"> setTimeout </button>
</template>
<script>
export default {
data() {
return {
countDown : 0
}
},
method: {}
watch: {
countdown: function(val) {
if(val > 0) {
setTimeout(() => {
this.countdown -= 1;
}, 1000);
}
},
}
}
</script>
<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>