使用Flux存储



我正在做一个只进行了很短时间的项目。现有的流量存储很少,它们管理应用程序状态的不同方面,并且相对独立。

我有两个问题:

存在的一些存储正在发出一种以上类型的更改事件。这是否表明商店处理了太多不相关的数据,这些数据应该在单独的商店中,还是这是一种常见的情况?

我们需要编写一个React组件,该组件依赖于多个已经存在的存储,还需要查询服务器以获得一些特定信息,以便在页面上呈现,然后允许用户修改。因此,在这个组件能够呈现之前,它需要确保所有存储都包含它们需要的内容,并发出操作来填充缺失的内容。我的问题是如何处理这个问题。创建一个新的存储来获取组件所需的特定数据并依赖于其他存储(使用通常的流量存储依赖规则),或者让组件知道它直接依赖于哪些特定存储,这会更好吗。

对于问题的第一部分:这取决于情况。Flux不会强迫你遵守一套严格的规则。例如,Redux对所有内容只使用一个存储。我参与的项目中,几乎所有组件都有自己的存储区,而另一个项目中,我们每个视图都有一个存储区,用于处理数据模型和所有其他状态。在不了解你的项目细节(规模、复杂性等)的情况下,我不能推荐其中一个。我可能会选择对您和您的团队有意义的最小数量的存储,并根据需要进行重构(即,当您觉得它处理了太多或单个文件包含了太多不相关的代码时)。什么最适合你的情况,让你最舒服。

对于其他部分:由于您希望组件仅在填充了所有存储的数据之后进行渲染,所以我将引入新的存储来处理服务器数据,并使用Dispatcher的waitFor方法来定义依赖关系。如果您选择直接使用存储,那么您可以使用某种初始状态来渲染组件,在缺少或禁用用户编辑的部分上加载微调器,并在获取数据后更新状态以显示其余数据/启用编辑。这需要更多的代码,但可以带来更好的用户体验。再说一遍,这完全取决于你的需求。

最新更新