我们正在构建一个相当复杂的 React + Reflux 应用程序,并有几个商店来监听来自其他组件的一些操作。例如:
var FooStore = Reflux.createStore({
listenables: [FooActions, BarActions],
...
});
由于以下几个原因,我认为这种方法并不理想:
- 扩展 BarActions 时,您可能会在不知不觉中引入与 Foo 动作同名的动作,这将导致回归错误
- 读取 FooStore 中的代码时,哪些函数与 BarAction 相关并不一定很明显
- 如果您知道命名冲突,那么您需要创建过于冗长的操作
我怎样才能避免这些问题?
编辑
我目前避免这些问题的方法是明确说明商店在其主要事件源之外正在监听哪些操作:
var FooStore = Reflux.createStore({
listenables: [FooActions],
init: function() {
this.listenTo(BarActions.shoot, this.onShoot);
},
...
});