event
js事件驱动
介绍
脱离web中的原生事件原理,通过回调形式实现事件机制,并且将事件分成不同的群组的消息,从而实现两级的消息管理
如何使用
//安装
npm install cs-event --save-dev
//然后在页面中引入cs-event
import CSEventEmitter from 'cs-event'
CSEventEmitter.on(name,callback,context,group)
//name事件名称,callback回调函数 context设备上下 group 事件分组
示例1:
//绑定一个event1的事件
CSEventEmitter.on('event1',function(params,event){
console.log(event.name+'--'+event.group+"---"+params)
})
示例2:
//绑定一个属于分组group1的名为event3的事件
CSEventEmitter.on('event3',(params,event)=>{
console.log(event.name+'--'+event.group+"---"+params)
},null,'group1')
示例3:
function Test(){
this.name = '123213'
}
Test.prototype = {
add:function(param){
return param+'---'+this.name;
}
}
let test = new Test();
//绑定一个名为event1并且属于分组group1的事件,并设定设备上下文test实例
CSEventEmitter.on('event1',function(params,event,context){
console.log(event.name+'--'+event.group+"---"+params)
console.log(this.add(params));
console.log(context)
},test,'group1')
示例4
绑定一个属于group2 并且名为event2的事件
let event2 = CSEventEmitter.on('event2',(params,event,context)=>{
console.log(event.name+'--'+event.group+"---"+params)
console.log(test.add(params));
console.log(context)
},null,'group2')
CSEventEmitter.emit(name,params,...g)
//name为事件名,params为参数 g为所属分组(可传入数组) 如果g不传 默认分发所有分组下的事件
CSEventEmitter.emit('event2',{test:'123123'})
示例5
//触发group1下事件名event1的事件 并且参数为emit_event1_group1
CSEventEmitter.emit('event1','emit_event1_group1','group1')
示例6
//触发group1下所有的分组数据,分组数据可多传
CSEventEmitter.emitByGroup('emitByGroup','group1')
示例7
//触发名为event1的事件并且传入参数event1
CSEventEmitter.emit('event1','emit_event1')
示例8
//通过事件id移除事件
CSEventEmitter.remove(event2.eid);
示例9
//移除分组group2下所有的事件
CSEventEmitter.removeByGroup('group2')
示例9
//移除所有事件名为event1的事件
CSEventEmitter.removeByName('event1')
window.CSEventEmitter = CSEventEmitter;