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

É uma má prática usar o emit direto no evento?

Já trabalho com Vuejs, inclusive usando Nuxt.js, e surgiu a dúvida vendo o curso: essa forma de fazer emit de eventos de um componente é má prática ou é só uma abstração? Segue o código abaixo:

<template>
    <button
        class="button"
        @click="$emit('iniciarTarefa')"  <!--  má prática?  -->
        :disabled="cronometroRodando"
    >
        <span class="icon">
            <i class="fas fa-play"></i>
        </span>
        <span>play</span>
    </button>
</template>

<script lang="ts">
import { defineComponent } from "vue";

export default defineComponent({
  name: "BotaoPlay",               /* má prática não indicar os emits do componente? Não é necessário indicar os emits, mas é uma boa prática para deixar o código mais legível?*/

  props: {
    cronometroRodando: {
      type: Boolean,
      default: true,
    }
  }
});
</script>
1 resposta
solução!

Salve, André!

Aqui não se trata necessáriamente de boa ou má prática. Falando especificamente da versão 3 do Vue:

Observe que a opção emits afeta quais listeners de eventos recebidos pelo componente são considerados listeners de eventos do componente versus listeners de eventos DOM nativos.

O listeners de um evento declarado não será adicionado ao elemento raiz do componente e será removido do objeto $attrs do componente.

Embora opcional, é recomendável definir todos os eventos emitidos para melhor documentar como um componente deve funcionar. Isso também permite que o Vue exclua listeners conhecidos dos fallthrough attributes.

Mais detalhes você encontra aqui na documentação.