事件发送者
只是另一个事件 发送者/事件目标 执行.
安装
易于安装 无 软件包管理器
npm install --save @actualwave/event-dispatcher
与 线条 软件包管理器
yarn add @actualwave/event-dispatcher
使用量
注意: EventDispatcher 分发包中包含包裹入UMD包装器的包,因此可以使用任意AMD模块加载器,节点
require()或无所取.
要开始使用事件Dispatcher, 只是即时化它自己
class MyClass {
constructor() {
this._dispatcher = new EventDispatcher();
}
addListener(handler) {
this._dispatcher.addEventListener('didSomething', handler);
}
doSomething() {
this._dispatcher.dispatchEvent('didSomething');
}
}
和你的课一起延长
class MyClass extends EventDispatcher {
doSomething() {
this.dispatchEvent('didSomething');
}
}
即兴表演后 MyClass,每一个呼叫 doSomething() 将开火事件 didSomething 并且每个随附此事件的听众都会被调用事件对象作为参数 .
var myObj = new MyClass();
myObj.addEventListener('didSomething', function(event) {
console.log('My Listener', event.type);
});
myObj.doSomething();
添加听众时, 执行顺序与添加的顺序相同 。 要更改顺序, 您可以使用可选 priority 参数到 addEventListener() 方法.
myObj.addEventListener('didSomething', function(event) {
console.log('Prioritized Listener', event.type);
}, 1);
myObj.doSomething();
默认优先级设定为0,您可以指定更高优先级 > 0或更低的 < 0,仅允许整数值.
射击事件,你应该使用 dispatchEvent() 方法,可以用三种方式:
您只能通过事件类型字符串 。 在此情况下, 对象将由 EventDispatcher
var dispatcher = new EventDispatcher();
dispatcher.dispatchEvent('eventType');
用事件类型, 您可以指定任何数据, 作为第二个参数, 数据应该随事件一起传递
dispatcher.addEventListener('eventType', function(event) {
console.log('My Listener', event.type, event.data);
});
dispatcher.dispatchEvent('eventType', {myData: 'something'});
您也可以通过事件对象, 它必须包含 type:String 属性
dispatcher.dispatchEvent({type: 'eventType', data: 'data is optional'});
如果您想要完全控制事件Dispatcher的起火事件, 您可以指定事件预处理器功能, 在事件发射前会为每次事件调用 。 3⁄4 ̄ ̧漯B.
function eventPreprocessor(event){
event.data = event.data || {};
return event;
}
var dispatcher = new EventDispatcher(eventPreprocessor);
dispatcher.dispatchEvent('eventType');
eventPreprocessor() 函数将随事件对象调用,返回对象将被使用.
项目实例 example 文件夹。 首先尝试实例运行服务器
npm run server
接下来去 http://localhost:8081/index.html (中文(简体) )
API 密码
事件发送者
- 添加事件倾听器(事件Type:String,收听者:Function,优先级:int=0):void - 在事件类型中添加收听者. 此外,还可以设定优先级,更高的值允许调用听众在他人之前,更低 -- -- 之后。 同一收听器可以使用不同的优先级添加到事件类型. 默认为0.
- 有事件收听器(eventType:String):void - 检查是否在事件类型中添加了收听器.
- 删除事件收听器(eventType:String,收听者:Function):void - 从指定类型的事件中删除事件收听者.
- 删除全部事件收听器(eventType: String): void - 从指定类型的事件中删除所有听众.
- 发送事件(事件Type:String,数据:Object=null):void - 调度事件
eventType通过data。将创建内置类事件的对象,并将其传递给听众作为第一个参数. - 发送事件(事件:Object:void - 事件对象应该被发射,可以是任何物体. 只有要求 -- -- 它必须包含字段
type带有事件类型.
事件Dispatcher 构建器接受可选参数 eventPreprocessor(event:Object):Object,该函数接收事件对象作为参数,并应当返回同一或新的/已更改的事件对象,这些对象将传递给事件听众.
活动
内设班级代表已发送事件.
事件类的对象用于调用调度 Event () 方法时 eventType。 。 。 .
- 类型: string - 事件类型.
- 数据: 对象 - 数据对象传递给
EventDispatcher.dispatchEvent()方法. - 默认(:void - 将会将"被防止"的旗帜从FALSE改为TRUE,可以通过
isDefaultPrevented()方法. - 已默认(:Boolean - 如果
preventDefault()被调用.
任何事件(内置事件类别或作为事件传递的任何其他物体的发生)在发送时都会获得额外的方法. 周期完成后,这些方法将从事件对象中移除.
- 停止预览(:void) - 处理所有同样优先的收听者后停止事件传播.
- 立即停止 Propagation(:void) - 停止当前收听器上的事件传播.
Claude/ AI 特工Skill
这个软件包包括 SKILL.md 文件( 编号代理技能 格式),它教AI编码助理如何使用库. 当安装为 npm 依赖时,该技能在 node_modules/@actualwave/event-dispatcher/dist/SKILL.md 并且可以被克洛德代码或任何相容的代理来加载,以获得准确,最新的使用指导而无需依赖训练数据.
写为 堆叠编辑。 。 。 .