Porque manter o estado em duas propriedades? Pensei na ideia de remover o estado do cronometroRodando
, computar isso de acordo com o valor do cronometro
e assim eu teria apenas um estado para gerenciar.
import { defineComponent } from "vue";
export default defineComponent({
name: "Temporizador",
data () {
return {
tempoEmSegundos: 0,
cronometro: 0
}
},
computed: {
cronometroRodando(): Boolean { /* CRONOMETRO RONDANDO COMPUTADO */
return this.cronometro == 0
},
tempoDecorrido (): string {
return new Date(this.tempoEmSegundos * 1000).toISOString().substr(11,8)
}
},
methods: {
iniciar () {
this.cronometro = setInterval(() => {
this.tempoEmSegundos += 1
}, 1000)
},
finalizar () {
clearInterval(this.cronometro)
this.cronometro = 0 /* LIMPANDO O ESTADO */
}
}
});
<button class="button" @click="iniciar" :disable="cronometroRodando">
<span class="icon">
<i class="fas fa-play"></i>
</span>
<span>play</span>
</button>
<button class="button" @click="finalizar" :disable="!cronometroRodando">
<span class="icon">
<i class="fas fa-stop"></i>
</span>
<span>stop</span>
</button>