You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue3组合式API:如何定义带点语法成员的emit事件

Vue3组合式API中实现带点符号的emit事件

你看到的@someEvent.customMember写法,本质是带命名空间的事件名称——Vue允许事件名包含点号,它就是一个普通的字符串事件名,并非给someEvent添加成员。实现步骤如下:

1. 子组件定义带点号的事件

在组合式API中,直接通过defineEmits声明完整的带点事件名即可:

// 数组形式
const emit = defineEmits(['someEvent.customMember'])

// 或者对象形式(可添加事件校验)
const emit = defineEmits({
  'someEvent.customMember': null // 若需校验,可替换为函数,比如(val) => typeof val === 'string'
})

2. 子组件触发该事件

在需要触发事件的逻辑中,直接调用emit并传入完整的事件名:

// 可携带自定义参数
emit('someEvent.customMember', '自定义数据')

3. 父组件绑定事件

就用你给出的写法绑定即可:

<MyComponent @someEvent.customMember="onHandler_1" />

额外说明

如果需要实现同一类事件下的不同子场景(比如someEvent下有customMember、anotherMember两个子类型),可以用这种点号命名空间的方式归类事件,让代码语义更清晰。每个带点的事件都是独立的,彼此互不影响。

内容的提问来源于stack exchange,提问作者Jamie Marshall

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 21:20:00