浅谈 JS 发布订阅模式
前言
在使用前端各大框架时,多多少少会使用过或听说过发布订阅模式,本篇文章将使用原生JS
实现一个简单的发布订阅模式,并演示其在React
中进行跨组件通信的作用
一、发布订阅模式是什么?
简单来说发布-订阅模式
其实是一种对象间一对多的依赖关系,当一个对象的状态发送改变时,所有依赖于它的对象都将得到状态改变的通知。
订阅者
把自己想订阅的事件处理函数注册到统一的调度中心
中,当发布者
向调度中心发布数据时,由调度中心
统一调用订阅者
注册到调度中心
的事件处理函数。
二、使用步骤
1.创建调度中心
代码如下:
代码解释:
bus
对象即是我们创建的调度中心,里面含有两个函数,一个是订阅函数(subscribe
),一个是发布函数(publish
),并含有一个存放订阅者事件处理函数的数组(list
)。
发布订阅模式过程:
订阅者调用
subscribe
函数,并将自己对数据处理的事件函数传入其中调度中心将订阅者订阅的事件处理函数统一存放到
list
数组中发布者调用
publish
函数,并可将发布的数据传入其中调度中心遍历
list
数组,依次执行订阅者订阅的事件处理函数,并将发布者发布的数据传入其中
2.实际操作
代码如下:
控制台打印结果:
注意顺序,订阅者要先订阅,发布者再发布才会有效果==联想一下公众号,一个公众号就是一个发布者,关注它的人都是订阅者,只有在我们关注了它之后,它发布的信息我们才能收到通知==
3. React 中的应用
利用发布订阅模式进行 React 中跨组件通信:
总结
以上就是今天要讲的内容,本文仅仅简单介绍了发布订阅模式的创建及使用,其目的是能够通过原生JS
去实现一些通用的功能,像上面演示的跨组件通信一样,它不仅能在React
中应用,在其它框架中也能够灵活使用。
版权声明: 本文为 InfoQ 作者【海底烧烤店ai】的原创文章。
原文链接:【http://xie.infoq.cn/article/ce5de43fe76e4fc295ab672c6】。文章转载请联系作者。
评论