【发布时间】:2015-09-14 08:30:45
【问题描述】:
我发现的几乎所有关于通量的教程每个商店只发出一个事件 (emitChange)。我真的不知道这是故意的,还是只是教程简单的结果。
我尝试实现一个与 CRUD 架构相对应的存储,我想知道为每个 CRUD 方法发出不同的事件是否是一个好的设计决策。
我的一家商店的相关部分如下所示:
var UserStore = _.extend({}, EventEmitter.prototype, {
emitChange: function() {
this.emit('change');
},
emitUserAdded: function() {
this.emit('userAdded');
},
emitUserUpdated: function() {
this.emit('userUpdated');
},
emitUserDeleted: function() {
this.emit('userDeleted');
},
// addListener, removeListener in the same manner
});
如果我的方法是错误的,我将如何告诉我的组件发生的事件类型(例如:删除或更新)
【问题讨论】:
-
我不熟悉
react,但总的来说,主要考虑因素是平衡编写大量样板连接代码以为每个实体提供离散事件类型与每个更新事件处理程序每当发布update时触发,而不是在发布userUpdated时触发一个事件处理程序。您的运行时环境有多少马力? -
'您的运行时环境有多少马力?' - 这个问题是什么意思?
-
我认为有一个更新事件是不合适的,因为每个商店都代表一个独立的实体。所以事件必须来自例如 UserStore,所以我无法触发一般更新事件。但是,我可以从我的 UserStore 触发一个简单的更改事件,并作为参数给出它是更新还是其他。我只是不知道这是否是最好的方法。
-
“多少马力”是一个汽车类比......它的意思是“运行时间有多强大或有能力”。如果您在服务器上的节点中运行,则与在最低公分母用户的浏览器上运行相比,您拥有更多的“马力”。
-
显然我是在浏览器中运行它的 :) 但我不认为性能会成为这里的瓶颈,我只是问,这是否是一个好的设计决策(来自代码质量角度)。
标签: reactjs reactjs-flux