[Vuejs]-VueJS : How to update value inside watcher without affecting the watcher

0👍

I think you can try something like this:

data() {
  return {
    timer: null,
    timerCounter: 0
  }
},
methods: {
  setTimer(state) { // true enabled, false disabled
    if(state) {
      this.timerCount = // seconds
      this.timer = setTimeout(() => {
        timerCounter--;
        if(timerCounter <= 0) {
          this.setTimer(false);
          // go to next question
          this.setTimer(true);
        }
      }, 1000);
    } else {
      clearTimeout(this.timer);
    }
  }
}

You only need to call setTimer(true) for start the timer for the first time, for example in the mounted() function or at click event of a button.

If you don’t want that the timer restart after question change, remove this.setTimer(true);.

Leave a comment