事件名 会自动将 驼峰 转化为 kebab-case (HTML标签不区分大小写这个问题)
props、自定义事件、组件 的命名都存在自动转化。如果你使用的是字符串模板,这个限制就不适用。
emits 选项
当在 emits 选项中定义了原生事件 (如 click) 时,将使用组件中的事件替代原生事件侦听器。
带有验证的 emit
与props类似,可以通过数组语法和对象语法 来定义自定义事件
通过对象语法配置事件抛出验证:
{
emits: {
// 验证submit 事件
submit: ({ email, password }) => {
if (email && password) { // 邮箱和密码都存在
return true
} else {
console.warn('Invalid submit event payload!')
return false
}
}
},
methods: {
submitForm(email, password) {
this.$emit('submit', { email, password }) // 触发自定义事件的方法
}
}
}