在Flux中,让通用组件调用ActionCreator是否犹豫不决?

时间:2016-05-31 08:43:02

标签: reactjs redux flux

我发现的大多数Flux文档缺乏对组件与容器的讨论。

我知道将容器作为负责收听商店的唯一元素,这被认为是最佳做法。这绝对有道理,因为;

  1. 它限制了收听商店的组件数量。
  2. 子组件有一个地方(他们的道具)来接收来自的数据。
  3. 但是一些解释暗示容器也应该对ActionCreator的所有调用负责。在这一点上,我并没有真正看到这些优势。

    说服我,我错了?

1 个答案:

答案 0 :(得分:1)

免责声明:我对Flux的唯一体验来自Redux,这种模式并不完全相同 - 我说相信这个概念是相同的。

实际上,让容器调用动作创建者的原因与通过props传递数据的原因相同,而不是让每个组件都听取存储 - 这意味着你的表示组件不需要知道关于周围世界的一切。

采取Todo列表应用程序的(完全原创而不是过头)的例子。您可以硬编码,点击TodoItem会触发CompleteTodo操作 - 但如果我想在我的应用中的其他位置显示该项目的只读版本,我必须制作另一个不称为该动作创建者的组件版本。如果您将一个调用动作创建者的回调作为一个可选的道具传递,那么该项目不再需要管理点击它时发生的事情 - 它只需告诉父母何时发生,那么父母可以自由地做它想要那些信息,甚至完全忽略它。

这不是一个完美的例子,但希望它说明了为什么有些人建议这样做的原因!