0.0.4 • Published 2 years ago

zcrane v0.0.4

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

zcrane

一个简单实现发布订阅模式的工具库

目录

安装

npm

$ npm install zcrane

yarn

$ yarn add zcrane

使用

JavaScript

// bus.js
import {ZCrane} from "zcrane"

export const zCrane = new ZCrane()

发布

// publisher
import zCrane from "./bus"

zCrane.emit("click")
// 传递参数
zCrane.emit("click", {})

订阅

// subscriber
import zCrane from "./bus"

zCrane.on(EventsEnum.LOGIN,(option)=>{
    console.log(option)
})

TypeScript

Crane需接受一个接口,用于定义不同事件发布的参数类型

import {ZCrane} from "zcrane"

// 事件枚举
enum EventsEnum {
    LOGIN = "login",
    LOGOUT = "logout"
}
// 事件类型
interface Events{
    // 例如:login事件发布时传递的参数类型为string | number
    [EventsEnum.LOGIN]: string | number
    [EventsEnum.LOGOUT]: string | number
}
export const zCrane = new ZCrane<Events>()

// publisher
zCrane.emit(EventsEnum.LOGIN, "login")

// subscriber
zCrane.on(EventsEnum.LOGIN,(option)=>{
    console.log(option)
})

API

on

订阅事件

参数描述类型备注
EventName事件名称string/number/symbol必选
Handler事件处理函数Function可选
const handler = () => {}
zCrane.on("click", handler)

emit

发布事件

zCrane.emit("click")

off

取消某个订阅

// on 方法返回一个key,用于取消订阅
const key = crane.on("click")

zCrane.off(key)

offAll

取消某事件全部订阅

// 取消所有关于点击事件的订阅
zCrane.offAll("click")

clear

取消全部订阅

zCrane.clear()

License

MIT License © jiuyi

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago