npm.io
1.0.1 • Published 7 years ago

cy-event

Licence
ISC
Version
1.0.1
Deps
0
Size
44 kB
Vulns
0
Weekly
0
Stars
1

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

__CODE_BLOCK_6__


CSEventEmitter.emit(name,params,...g)
//name为事件名,params为参数  g为所属分组(可传入数组) 如果g不传 默认分发所有分组下的事件

__CODE_BLOCK_8__

示例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;