Skip to content

beautywe/plugin-event

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

介绍

CircleCI NPM Version NPM Downloads npm bundle size Coverage Status

Feature

  1. 发布/订阅

安装

$ npm i @beautywe/plugin-event
import { BtApp } from '@beautywe/core';
import event from '@beautywe/plugin-event';

const app = new BtApp();
app.use(event());

使用

注册事件监听器

app.event.on('hello', msg => console.log(msg));

app.event.trigger('hello', 'I am jc');
// 输出 I am jc

app.event.trigger('hello', 'I am david');
// 输出 I am david

注册一次性的事件监听器

app.event.once('hello', msg => console.log(msg));

app.event.trigger('hello', 'I am jc');
// 输出 I am jc

app.event.trigger('hello', 'I am david');
// 啥都不会发生

注销与清除事件

// 注销指定事件的所有监听器
app.event.off('event');

// 注销所有事件的所有监听器
app.event.off();

其他

��宿主独立的事件队列

该插件的实现,会在宿主的 theHost._event 中存储事件队列。 这就意味着,多个宿主都引入 event 插件,它们的事件都是相互独立的。

const page = new BtPage();
page.use(event());

const app = new BtApp();
app.use(event());

page.event.on('hello', msg => ...);

app.event.trigger('hello');
// 啥都不会发生

事件队列的销毁

根据 event 的实现原理,如果宿主实例被销毁了,事件队列同样会被销毁。

例如在 A 页面引入了 event,并且注册了很多事件,如果 A 页面被微信小程序环境销毁了,那么事件队列也会被销毁。

License

This project is licensed under the MIT license.

Copyright (c) JerryC Huang ([email protected])

About

Event plugin for BeautyWe

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published