Flux:商店应该告知组件有什么变化吗?

时间:2016-03-10 18:14:07

标签: javascript architecture redux flux refluxjs

我有一个关于Web应用程序架构的问题,例如Flux和相关的。请注意,我不使用React.js,这个问题纯粹是关于架构。

如果我正确理解Flux中的概念,Store会通知组件有关更改的信息。然后,组件应该从Store中获取所有数据。当我想知道数据中发生了哪些变化时,会发生什么?当使用ReactJS时,可以将整个数据提供给React,然后React使用设计良好的diff和虚拟DOM算法来应用更改。但是,如果没有React并且有大量数据呢?

现实生活中的例子

新数据每1-2秒通过WebSockets发送一次。数据被添加到商店,但其中一个组件需要知道更改的内容(想象新数据需要以某种动画形式出现在视图中)。有很多数据,迭代整个数组并且比较每个元素都不是一个选项。此外,直觉上它感觉不对,因为应用程序的某些部分知道完全它已经改变了,为什么视图不能?

我一直在寻找解决方案,我找到了三种建议方法:

  1. 商店确切地通知了哪些内容(根据Flux规则)
  2. 商店会保留上次更改并提供公开方法getLastChanges()
  3. 仅保留上次更改数据的附加商店。
  4. 从架构上讲,这里的解决方案是什么?

1 个答案:

答案 0 :(得分:1)

  

但如果没有React并且有大量数据呢?

在这种情况下,Flux架构不适用。你为什么要用它?

当视图(或任何订阅商店)可以根据当前(有时是之前的)状态的知识有效地执行操作时,Flux运行良好。如果您的域名不是这种情况,请不要使用Flux。