Flux - 谁应该更改正在收集的模型中的数据?

Posted

技术标签:

【中文标题】Flux - 谁应该更改正在收集的模型中的数据?【英文标题】:Flux - who should change data in models which are in collection? 【发布时间】:2015-03-05 02:34:26 【问题描述】:

我有这个集合的模型和列表视图的主干集合。

<ul>
  <li><input type="checkbox"/> <span>Title</span></li>
  ...
</ul>

当用户点击复选框时,我执行此代码

Actions.save(id: model.cid, data: select: true)

调度程序中的这个动作触发事件save-model,这里的问题是——谁应该处理这个事件?

我有两个选择:

1) 收藏

Dispatcher.on('save-model', function (event) 
  var model = collection.get(event.cid);
  if (model) 
    model.set(event.data);
  
);

2) 集合中的每个模型都应该听 dispathcer

Dispatcher.on('save-model', function (event) 
  if (model.cid === event.cid) 
    model.set(event.data);
  
);

【问题讨论】:

【参考方案1】:

我会选择选项 #1 - 收藏。我的观点是这样事件只需要处理一次。如果绑定在模型中,假设你的集合有1k个模型,会触发1k个事件检查是否匹配,然后设置属性。

【讨论】:

以上是关于Flux - 谁应该更改正在收集的模型中的数据?的主要内容,如果未能解决你的问题,请参考以下文章

Flux 应用程序中的缓存逻辑应该放在哪里?

使用 Flux 构建一个编辑表单,谁实际将数据 POST 到服务器:操作、存储、视图?

Flux 中的 AJAX:依赖状态更改时刷新存储

React Js - Flux 中的状态管理

区分 Flux 中的存储更改?

React / Flux:我应该让商店听取其他商店的更改吗?