Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Diferença entre o emit e chamar a função direto

Qual seria a diferença entre usar o emit, com chamar a função direto no metedo finalizar()?

Exemplo:

*Formulario.vue*

<TemporizadorFormulario :finalizarTarefa="finalizarTarefa"/>

*Temporiazador.vue*

props: {
    finalizarTarefa: Function
}

finalizar() {
        this.cronometroRodando = false
        clearInterval(this.cronometro)
        //this.$emit('aoTemporizadorFinalizado', this.tempoEmSegundos) -> NO LUGAR DISSO
        this.finalizarTarefa(this.tempoEmSegundos) -> Vem isso
        this.tempoEmSegundos = 0
    }
1 resposta
solução!

Salve, Gabriel!

Aqui depende da sua abordagem. A responsabilidade do Cronometro, ao fazer o emit é de apenas sinalizar que o temporizador foi finalizado.

Se você quiser que além disso esse mesmo componente finalize a tarefa, aí você pode implementar o método finalizarTarefa.

A diferença principal entre as duas abordagens é:

  • ao fazer o emit você simplesmente está delegando a responsabilidade de finalizar a tarefa para o componente pai.

  • ao finalizar a tarefa diretamente, você está assumindo a responsabilidade para o componente Cronometro.

Percebeu a diferença?