emitChange、addChangeListener 和 removeChangeListener 在 flux 中的作用是什么
What is point of emitChange, addChangeListener, and removeChangeListener in flux
在 Flux 示例中,所有 Store 类 都具有 emitChange
、addChangeListener
和 removeChangeListener
的函数。它们在所有示例中都是相同的,例如:
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
如果相同,为什么库不提供一些通用代码?为什么有这个样板文件?
公共代码在emit
和on
和removeListener
的实现中。
这只是一个例子。在现实生活中,您可能永远不会在应用程序启动后删除侦听器。或者您可能想向这些方法添加一些日志记录代码。因此,这些样板示例可能因应用程序而异。
更重要的是。 Facebook 的 flux 实现只是一个例子。可能有数百种通量实现,因为它们构建起来相当简单。重要的特征不在于这些次要细节,而在于数据如何通过通量架构的设计。
如果您有兴趣,here's a store class using my own minimal flux 架构。完全没有样板文件。
在 Flux 示例中,所有 Store 类 都具有 emitChange
、addChangeListener
和 removeChangeListener
的函数。它们在所有示例中都是相同的,例如:
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
如果相同,为什么库不提供一些通用代码?为什么有这个样板文件?
公共代码在emit
和on
和removeListener
的实现中。
这只是一个例子。在现实生活中,您可能永远不会在应用程序启动后删除侦听器。或者您可能想向这些方法添加一些日志记录代码。因此,这些样板示例可能因应用程序而异。
更重要的是。 Facebook 的 flux 实现只是一个例子。可能有数百种通量实现,因为它们构建起来相当简单。重要的特征不在于这些次要细节,而在于数据如何通过通量架构的设计。
如果您有兴趣,here's a store class using my own minimal flux 架构。完全没有样板文件。