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

In Flux architecture, will a Global Dispatcher be harmful?

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

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

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

一种解决方案是第三方可以附加一些行为到全局调度程序。然而,这也可能是有害的。因为他们使用的事件名称可能与我的冲突。比如他们和我用同一个事件名,我可能会顺带触发他们的事件。

有人对此有想法吗?谢谢!

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

如果您使用其他库,它 可以 由引擎盖下的 flux 或类似 flux 的系统管理,在这种情况下,它会使用其 拥有调度员。但是,它应该显示一个 public API 通过 props 和回调进行通信,即使它在引擎盖下使用了 flux 或类似 flux 的实现;助焊剂内部不应暴露。

在大多数情况下,出于多种原因,我认为拥有一个向您自己的通量设置添加特定功能(例如,特定操作、存储等)的库没有意义。然而,在理论上这个 did 碰巧有意义的情况下,它可能 "plug-in" 对现有系统的行为,正如你提到的,理想情况下命名空间如动作。