emits Declarar eventos emitidos
Última atualização: 2026-10-22
emits Declarar eventos emitidos
A opção emits documenta e valida os eventos que um componente dispara; emissões não declaradas geram aviso em desenvolvimento.
| Grupo | Opções: Estado |
|---|---|
| Tipo | Opção |
| Escopo | No Componente |
| Versão do Vue | 3.0+ |
| Suporte a SSR | Sim |
📝 Sintaxe
export default {
emits: ["change", "submit"],
methods: {
fire() { this.$emit("change", 1) }
}
}
⚙️ Argumentos
| value | Array ou objeto; a forma de objeto adiciona um validator |
|---|
Retorno:Sem retorno — dispare com this.$emit
▶ Exemplo
Edite o código abaixo e veja o resultado ao vivo:
Saída:
Clicking shows 'Message received: from child'.
💡 Pontos-chave
💡 Dica Declarar melhora o suporte das ferramentas tanto no filho quanto no pai.
⚠️ Aviso Inclua update:modelValue em emits ao suportar v-model.
ℹ️ Nota Prefira nomes de evento em kebab-case — o casing de atributos HTML é insensível.
🏷️ Estado relacionados
💡 Casos Relacionados
Mais casos em breve.
📚 Tutoriais Relacionados
Comunicação entre componentes: props/emits
Lição 10 do tutorial: validação e nomenclatura de eventos
❓ FAQ
P E se as emissões não forem declaradas?
R Ainda funciona, mas gera aviso, e listeners podem cair no fallthrough inesperadamente.
P Dá para emitir múltiplos argumentos?
R Sim — $emit('change', a, b) os entrega em ordem.
P Nomes de evento podem ser camelCase?
R Evite — templates DOM transformam nomes em minúsculas; kebab-case é o mais seguro.