EventHelper
EventHelper 是 @tmagic/core 的事件助手类,继承自 EventEmitter,用于管理组件间的事件联动。
构造函数
typescript
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}
详情:
初始化所有节点的事件。通常在页面加载时调用。
示例:
typescript
eventHelper.initEvents();bindNodeEvents
参数:
{Node} node节点实例
返回:
{void}
详情:
为单个节点绑定事件处理。
示例:
typescript
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 | 数据源方法调用 |
事件配置示例
typescript
const eventConfig = {
name: 'click',
actions: [
{
actionType: 'comp',
to: 'button_2',
method: 'show'
},
{
actionType: 'code',
codeId: 'code_1'
},
{
actionType: 'dataSource',
dataSourceId: 'ds_1',
methodName: 'fetchData'
}
]
};