f-event

1.0.4 • Public • Published

F-event

Downloads

Small but Powerful event handler

为什么要做这个呢,是因为在兼职写一个没有很好工程结构的项目的时候,需要用到这样一个模型,于是就诞生了这么一个项目,功能简单,目标明确~

have fun~

安装

browser

clone本项目,引入f-bus.es5.browser.js

npm

npm install f-event

API

目前共有两种创建事件的方法

第一种(单例) 推荐用于解决全局事件,单例模式,全局引用相同

const { Fbus } = require('F-event');
let bus_1 = Fbus;

第二种(多个) 可以用于创建多个eventBus

const { F_bus } = require('F-event');
let bus_3 = new F_bus();

订阅事件 监听事件,如果启动命名空间,默认为default

bus.on('${eventName}', () => {
  //callback
})

单次订阅事件 当事件发生时,销毁该监听

bus.once('${eventName}', () => {
  //callback
})

获取选定事件的所有回调函数

bus.getListener('${eventName}')

触发事件 在arguments里写入要发送的消息或者为要给监听事件传入的参数

bus.emit('${eventName}', arguments)

删除事件 如果不加type,默认全部删除

bus.remove('${eventName}', function, type)  //  function指代要删除的function type指定所要删除的事件类型once代表一次监听normal代表普通

历史事件 返回历史触发事件,带时间

bus.history();

历史事件返回值

{
    type:once/normal,   //  once代表单次监听,normal正常
    function:fun,   //  fun所调用的函数
    time:time   //  触发时间
}

命名空间 用于解决单命名空间变量冲突冗余问题

bus.enablens(); //启动命名空间功能,必须! 此时原事件命名空间为'default'
bus.ns('${namespaceName}'); //此处返回了bus本身,并且已经切换命名空间,若不存在当前命名空间,则创建

命名空间eg:

bus.enablens();
bus.ns('ns1').on('ns1Test', () => {});
bus.emit('ns1Test');

待完成API

  • 在想

Readme

Keywords

Package Sidebar

Install

npm i f-event

Weekly Downloads

1

Version

1.0.4

License

MIT

Unpacked Size

22.6 kB

Total Files

9

Last publish

Collaborators

  • selef