PubSub-JS 文档
网上查了蛮长一段时间(或许是我没有注意到吧!)也没看到有相关的中文资料或文档,为了方便索性自己写一个吧,留着备用!文档部分为官方文档”机翻”(个人英文不怎么样,所以大部分机翻),中间会插杂一些个人的理解及案例!
功能
API 列表
- throwException(ex)
- 返回抛出传递的异常的函数,用作setTimeout的参数
- publish(message, data) –> 布尔型
- 发布消息,将数据传递给它的订阅者
- publishSync(message,data) –> 布尔型
- 同步发布消息,将数据传递给它的订阅者
- subscribe(message, func) –> 字符串 | 布尔型
- 将传递的函数预订到传递的消息。 每个返回的标记都是唯一的,如果您需要取消订阅,应该存储。 如果由于某种原因未注册订阅,则返回false
- subscribeOnce(message, func) –> PubSub
- 将传递的函数预订到传递的消息一次
- clearAllSubscriptions()
- 清除所有订阅
- clearAllSubscriptions()
- 按话题清除订阅
- subscribeOnce(value)
- 删除订阅
- 传递标记时,删除特定订阅。
- 传递函数时,删除该函数的所有订阅
- 传递话题时,删除该话题的所有订阅(层次结构)
- 删除订阅
语法
throwException(ex)
返回抛出传递的异常的函数,用作setTimeout的参数
类别: 全局函数
参数 | 类型 | 描述 |
---|---|---|
ex | Object | 一个错误对象 |
publishSync(message, data)
同步发布消息,将数据传递给它的订阅者
类别: 全局函数
参数 | 类型 | 描述 |
---|---|---|
message | String | 要发布的消息 |
data | 要传递给订阅者的数据 |
subscribe(message, func)
将传递的函数预订到传递的消息。 每个返回的标记都是唯一的,如果您需要取消订阅,应该存储。 如果由于某种原因未注册订阅,则返回false
类别: 全局函数
参数 | 类型 | 描述 |
---|---|---|
message | String | 订阅的消息 |
func | function | 发布新消息时调用的函数 |
func参数有两个参数
- msg: 为该订阅的名称
- data: 发布消息处传递过来的数据
subscribeOnce(message, func)
将传递的函数预订到传递的消息一次
类别: 全局函数
参数 | 类型 | 描述 |
---|---|---|
message | String | 订阅的消息 |
func | Function | 发布新消息时调用的函数 |
clearAllSubscriptions()
清除所有订阅
类别: 全局函数
访问:公开
clearAllSubscriptions()
按话题清除订阅
类别: 全局函数
访问:公开
subscribeOnce(value)
删除订阅
- 传递标记时,删除特定订阅。
- 传递函数时,删除该函数的所有订阅
- 传递话题时,删除该话题的所有订阅(层次结构)
类别: 全局函数
访问:公开
参数 | 类型 | 描述 |
---|---|---|
value | String/Function | 要取消订阅的标记,功能或话题 |
范例
1 | //取消订阅标记 |
示例
PubSub 可用于Vue中的组件之间的互相通信,极为方便,不过在使用之前需要下载
使用NPM的下载方式npm install pubsub-js --save
然后导入即可1
2
3
4
5
6
7
8
9
10import PubSub from 'pubsub-js'
// 发布消息
PubSub.publish('test', data)
//第一个参数为事件名,第二个参数为可选的是否传递数据
// 订阅消息
PubSub.subscribe('test', (msg, data) => {
console.log(msg, data)
})
// 第一个参数为事件名,第二个参数为触发事件后执行的回调函数,回调函数中第一个参数为事件名,必须,第二个为发布消息是传递过来的数据
// 一般使用的就这两个方法,其它的不怎么使用(个人来说)
订阅消息与发布消息的意思(人话版)
绑定事件监听 —-订阅消息
触发事件 —-发布消息
声明
本篇文档翻译于官方文档,加上自己的个人理解而成,
转载请注明原链接