在Flux架构中,Global Dispatcher会有害吗?

时间:2015-12-08 03:21:33

标签: javascript facebook reactjs flux reactjs-flux

在Facebook Flux架构中,据我所知,应该只有一个 Dispatcher。

拥有一个可能类似于事件总线的全局调度程序是合理的。但是,我想知道是否有一个单一的全局Dispatcher是不好的。

例如,假设我已经开发了一些组件和我的Dispatcher。现在我想导入第三方组件库,第三方的调度程序可以不能直接导入,因为应该只有一个Dispatcher(我已经开发了自己的Dispatcher)

一种解决方案是第三方可以将某些行为附加到Global Dispatcher。但是,这也可能是有害的。因为他们使用的事件名称可能与我的名字冲突。例如,他们使用与我相同的事件名称,我可能会偶然触发他们的事件。

有没有人有这方面的想法?谢谢!

1 个答案:

答案 0 :(得分:1)

每个应用程序应该有一个调度程序 - 换句话说,每个逻辑集的存储,操作和相关组件都应该 有一个调度员。

如果您使用其他库,可以由引擎或类似通量的系统管理,在这种情况下,它将使用其自己的调度程序。但是,它应该表现出一个通过道具和回调进行通信的公共API,即使它在引擎盖下使用磁通或类似磁通的实现;不应暴露磁通内部构件。

在大多数情况下,由于多种原因,我认为拥有一个为您自己的磁通设置添加特定功能(例如,特定操作,存储等)的库是不合理的。但是,在理论上这个确实有意义的情况下,它可能应该“插入”到现有系统的行为,正如你所提到的,理想情况下命名行为就像行动一样。