关于多功能应用程序的状态与通量存储的问题

Posted

技术标签:

【中文标题】关于多功能应用程序的状态与通量存储的问题【英文标题】:Questions on State vs. Flux Stores for multi-feature application 【发布时间】:2015-09-24 03:03:01 【问题描述】:

我已经学习了很多关于 Flux + React 的知识,为即将使用 React + Flux(替代实现)的项目做准备。 虽然关于通量架构以及它们如何连接在一起的所有概念对我来说都很清楚。我确实对如何处理特定于页面/视图的数据存有疑问。

在大型多功能应用程序中,应用程序范围的状态/数据(例如身份验证状态或其他全局功能)应该由通量操作/存储处理以轻松处理跨组件状态是很自然的。如果它在 Angular 1 应用程序中,这些数据/状态将进入工厂。

但是,对于页面/视图特定的数据/状态,它几乎不会跨***组件进行通信,只管理组件状态中的数据是否更有意义?例如,如果我的应用程序包含完全不相关的不同小应用程序,例如天气预报视图和计算器,如果组件的状态由内部管理,是否会提高组件的可重用性?

我只是在想象,如果我有一个自包含其状态的“计算器”组件,它会有一个非常独立的可重用计算器组件,我可以将它放在我的应用程序的任何位置,但是,如果计算器状态是存储在通量存储中,那么组件将具有更多的依赖关系。最后,假设将来我想在我的应用程序中允许两个计算器实例,如果使用通量存储,我必须更改结构以在存储中包含一个实例 ID。然而,如果使用组件状态,我只需要创建两个组件。

我对 React + Flux 还比较陌生,并且仍在尝试正确理解所有概念。如有任何问题,请随时纠正我。

【问题讨论】:

【参考方案1】:

我想你已经明白了。只是一些想法......

在组件(兄弟姐妹、父子)之间确实有任何协调的地方,商店非常有帮助,我发现它们比尝试来回传递道具要好得多

当数据发生变化并需要持久化到服务器时,使用存储非常有用。存储是否真正保存数据——或者只是通知组件更新成功将取决于你的应用程序。

【讨论】:

以上是关于关于多功能应用程序的状态与通量存储的问题的主要内容,如果未能解决你的问题,请参考以下文章

React.js - 通量与全局事件总线

通量商店改变其他商店

通量与全局变量(在服务中)

如何以通量模式存储对象更新视图

通量存储数据指针与依赖项

使用 websocket 反应通量更新循环