mirror of
https://github.com/Tencent/tmagic-editor.git
synced 2026-05-08 17:48:47 +00:00
补全方法的参数类型、返回值类型与详情说明,规范字段编辑器/字段配置/运行时 API 等文档。 Co-authored-by: Cursor <cursoragent@cursor.com>
3.1 KiB
3.1 KiB
EventHelper
EventHelper 是 @tmagic/core 的事件助手类,继承自 EventEmitter,用于管理组件间的事件联动。
构造函数
new EventHelper(options: EventHelperOptions)
EventHelperOptions
| 参数 | 类型 | 说明 |
|---|---|---|
app |
App |
应用实例 |
beforeEventHandler |
BeforeEventHandler |
事件处理前钩子(可选),形如 ({ eventConfig, source, args }) => void |
afterEventHandler |
AfterEventHandler |
事件处理后钩子(可选),形如 ({ eventConfig, source, args }) => void |
属性
| 属性 | 类型 | 说明 |
|---|---|---|
app |
App |
应用实例 |
eventQueue |
EventCache[] |
暂存的待处理事件队列(参见 getEventQueue) |
实例方法
initEvents
-
返回:
{void}
-
详情:
初始化所有节点的事件。通常在页面加载时调用。
-
示例:
eventHelper.initEvents();
bindNodeEvents
-
参数:
{Node} node节点实例
-
返回:
{void}
-
详情:
为单个节点绑定事件处理。
-
示例:
eventHelper.bindNodeEvents(node);
removeNodeEvents
-
返回:
{void}
-
详情:
移除所有节点的事件绑定。
bindDataSourceEvents
-
返回:
{void}
-
详情:
绑定数据源事件,监听数据源变化并触发相应的组件更新。
removeDataSourceEvents
-
参数:
{DataSource[]} dataSourceList数据源实例列表(必填)
-
返回:
{void}
-
详情:
移除给定数据源的事件绑定。内部根据已注册的事件名前缀,调用
dataSource.offDataChange或dataSource.off注销监听,并清空dataSourceEventList。
getEventQueue
-
返回:
{EventCache[]}事件缓存项数组,每项形如{ toId: Id, method: string, fromCpt: any, args: any[], handled?: boolean }
-
详情:
获取当前事件队列。当目标节点尚未挂载时,联动事件会被缓存到此队列;目标节点
mounted后,会消费匹配项并调用其instance上的对应方法。
addEventToQueue
-
参数:
{EventCache} event事件缓存项,形如{ toId: Id, method: string, fromCpt: any, args: any[] }
-
返回:
{void}
-
详情:
将事件添加到队列中等待处理。
destroy
-
返回:
{void}
-
详情:
销毁事件助手,清理所有事件绑定。
支持的动作类型
EventHelper 支持以下动作类型(ActionType):
| 类型 | 说明 |
|---|---|
ActionType.COMP |
组件动作,调用目标组件的方法 |
ActionType.CODE |
代码块执行 |
ActionType.DATA_SOURCE |
数据源方法调用 |
事件配置示例
const eventConfig = {
name: 'click',
actions: [
{
actionType: 'comp',
to: 'button_2',
method: 'show'
},
{
actionType: 'code',
codeId: 'code_1'
},
{
actionType: 'dataSource',
dataSourceId: 'ds_1',
methodName: 'fetchData'
}
]
};