events-trigger

1.2.5 • Public • Published

Events Trigger

一个简单的自定义事件触发器。源码使用最流行的ES6语法编写,类似于jQuery的事件api(on, off, trigger),可单独使用或者被其他构造器对象继承使用。

快速上手

  1. 使用npm安装到你的项目中:npm install --save events-trigger
  2. 使用commonjs或者es6模块方式导入:
var EventsTrigger = require('events-trigger');
//
// 或者
import EventsTrigger from 'events-trigger';
  1. 绑定一个自定义事件:
let events = new EventsTrigger();
events.on('my-event', () => console.log('trigger my-event'));
  1. 触发你的自定义事件:
events.trigger('my-event');

方法

  • on(type, callback):绑定自定义事件

    type: (String)

    事件类型,可以是type,或者type.namespace,例如:myevent.mudule01

    callback(data1 [, data2, ...]): (Function)

    事件回调方法,参数可以传入单个或多个,例如:handler(1, 2, 3)

  • off([event]):删除自定义事件

    type: (String)

    事件类型,可选。type或者.namespace,或者type.namespace。只传入type, 删除所有类型为type的事件。 传入.namespace,删除所有命名空间为namespace的事件,不限制事件类型。传入type.namespace,只删除namespace下类型为type的事件。 如果不传入任何参数,会移除所有事件。

  • trigger(type, [data1 [, data2, ...]]):触发自定义事件

    type: (String)

    事件类型,可以是type,或者type.namespace

    data: (Any Type)

    触发on所绑定的事件的回调方法时,传入的参数,可以是单个或者多个

示例

基本用法

import Events from 'events-trigger';
let events = new Events();
events.on('touch', (message) => console.log(message));
events.trigger('touch', 'trigger touch');

使用事件命名空间

import Events from 'events-trigger';
let events = new Events();
events.on('touch.e1', (message) => console.log(message));
events.on('touch.e2', (message) => console.log(message));
events.trigger('touch.e1', 'trigger touch on e1');

被其他构造函数继承

import Events from 'events-trigger';

class SomeModule extends Events {
    constructor() {
        super();
        
        this.create();
    }
    
    create() {
        this.trigger('create');
    }
}

let someModule = new SomeModule();

someMudule.on('create', () => console.log('create!'));

Package Sidebar

Install

npm i events-trigger

Weekly Downloads

3

Version

1.2.5

License

ISC

Last publish

Collaborators

  • nicolaszhao