📄 README.md

← 返回目录

mitt
npm build status gzip size

Mitt

Tiny 200b functional event emitter / pubsub.

- Microscopic: weighs less than 200 bytes gzipped

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:


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' })

// clearing all events emitter.all.clear()

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

Typescript

Set "strict": true in your tsconfig.json to get improved type inference for mitt instance methods.

import mitt from 'mitt';

type Events = { foo: string; bar?: number; };

const emitter = mitt(); // inferred as Emitter

emitter.on('foo', (e) => {}); // 'e' has inferred type 'string'

emitter.emit('foo', 42); // Error: Argument of type 'number' is not assignable to parameter of type 'string'. (2345)

Alternatively, you can use the provided Emitter type:

import mitt, { Emitter } from 'mitt';

type Events = { foo: string; bar?: number; };

const emitter: Emitter = mitt();

Examples & Demos

Preact + Mitt Codepen Demo
preact + mitt preview

*

API

#### Table of Contents

- mitt

- Parameters - Parameters - Parameters

mitt

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

Returns Mitt

all

A Map of event names to registered handler functions.

on

Register an event handler for the given type.

#### Parameters

- type (string \| symbol) Type of event to listen for, or '*' for all events

If handler is omitted, all handlers of the given type are removed.

#### Parameters

- type (string \| symbol) Type of event to unregister handler from, or '*'

If present, '*' handlers are invoked after type-matched handlers.

Note: Manually firing '\*' handlers is not supported.

#### Parameters

- type (string \| symbol) The event type to invoke

Now, take a moment to be sure your contributions make sense to everyone else.

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!