emitChange、addChangeListener 和 removeChangeListener 在 flux 中的作用是什么

What is point of emitChange, addChangeListener, and removeChangeListener in flux

在 Flux 示例中,所有 Store 类 都具有 emitChangeaddChangeListenerremoveChangeListener 的函数。它们在所有示例中都是相同的,例如:

https://github.com/facebook/flux/blob/master/examples/flux-chat/js/stores/ThreadStore.js

https://github.com/facebook/flux/blob/master/examples/flux-todomvc/js/stores/TodoStore.js

如果相同,为什么库不提供一些通用代码?为什么有这个样板文件?

公共代码在emitonremoveListener的实现中。

这只是一个例子。在现实生活中,您可能永远不会在应用程序启动后删除侦听器。或者您可能想向这些方法添加一些日志记录代码。因此,这些样板示例可能因应用程序而异。

更重要的是。 Facebook 的 flux 实现只是一个例子。可能有数百种通量实现,因为它们构建起来相当简单。重要的特征不在于这些次要细节,而在于数据如何通过通量架构的设计。

如果您有兴趣,here's a store class using my own minimal flux 架构。完全没有样板文件。