mitt

? Tiny 200 byte functional event emitter / pubsub.

Github星跟踪图

Mitt

Tiny 200b functional event emitter / pubsub.

  • Microscopic: weighs less than 200 bytes gzipped
  • Useful: a wildcard "*" event type listens to all events
  • Familiar: same names & ideas as Node's EventEmitter
  • Functional: methods don't rely on this
  • Great Name: somehow mitt wasn't taken

Mitt was made for the browser, but works in any JavaScript runtime. It has no dependencies and supports IE9+.

Table of Contents

Install

This project uses node and npm. Go check them out if you don't have them locally installed.

$ npm install --save mitt

Then with a module bundler like rollup or webpack, use as you would anything else:

// using ES6 modules
import mitt from 'mitt'

// using CommonJS modules
var mitt = require('mitt')

The UMD build is also available on unpkg:

<script src="https://unpkg.com/mitt/dist/mitt.umd.js"></script>

You can find the library on window.mitt.

Usage

import mitt from 'mitt'

const emitter = mitt()

// listen to an event
emitter.on('foo', e => console.log('foo', e) )

// listen to all events
emitter.on('*', (type, e) => console.log(type, e) )

// fire an event
emitter.emit('foo', { a: 'b' })

// working with handler references:
function onFoo() {}
emitter.on('foo', onFoo)   // listen
emitter.off('foo', onFoo)  // unlisten

Typescript

import mitt from 'mitt';
const emitter: mitt.Emitter = mitt();

Examples & Demos


API

mitt

Mitt: Tiny (~200b) functional event emitter / pubsub.

Parameters

  • all EventHandlerMap

Returns Mitt

on

Register an event handler for the given type.

Parameters

  • type String Type of event to listen for, or "*" for all events
  • handler Function Function to call in response to given event

off

Remove an event handler for the given type.

Parameters

  • type String Type of event to unregister handler from, or "*"
  • handler Function Handler function to remove

emit

Invoke all handlers for the given type.
If present, "*" handlers are invoked after type-matched handlers.

Parameters

  • type String The event type to invoke
  • evt Any? Any value (object is recommended and powerful), passed to each handler

Contribute

First off, thanks for taking the time to contribute!
Now, take a moment to be sure your contributions make sense to everyone else.

Development Start:

This project is typed with Flow Type annotations. To ensure you have the proper typings for this project run

flow-typed install

Reporting Issues

Found a problem? Want a new feature? First of all see if your issue or idea has already been reported.
If don't, just open a new clear and descriptive issue.

Submitting pull requests

Pull requests are the greatest contributions, so be sure they are focused in scope, and do avoid unrelated commits.

  • Fork it!
  • Clone your fork: git clone https://github.com/<your-username>/mitt
  • Navigate to the newly cloned directory: cd mitt
  • Create a new branch for the new feature: git checkout -b my-new-feature
  • Install the tools necessary for development: npm install
  • Make your changes.
  • Commit your changes: git commit -am 'Add some feature'
  • Push to the branch: git push origin my-new-feature
  • Submit a pull request with full remarks documenting your changes.

License

MIT License © Jason Miller

主要指标

概览
名称与所有者developit/mitt
主编程语言TypeScript
编程语言TypeScript (语言数: 1)
平台
许可证MIT License
所有者活动
创建于2017-01-15 01:10:50
推送于2024-08-14 08:58:20
最后一次提交
发布数12
最新版本名称3.0.1 (发布于 )
第一版名称1.0.0 (发布于 )
用户参与
星数11.6k
关注者数70
派生数472
提交数139
已启用问题?
问题数114
打开的问题数16
拉请求数42
打开的拉请求数7
关闭的拉请求数35
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?