【发布时间】:2015-04-09 16:52:55
【问题描述】:
根据Flux ArchitectureView 使用Action 调用Dispatcher 更新Store,同时View 监听Store 变化事件。
我的问题是:我们为什么需要 Store?
为了列出所有用户,我的组件将调用 ListAllUsersAction,后者将依次调用我的 API 并使用 API 调用的结果更新 Store。然后 Store 发出 View 正在监听的 change 事件。但存储也存储结果。为什么?为什么需要这个中间层?无论如何我都不会直接调用 store,所以这个缓存层对我来说毫无意义,并且随着我生成更多加载更多数据的事件,最终我所有的 store 都将拥有我的应用程序的所有状态,因为flux架构没有说明清理 Stores .
我错过了什么吗?
【问题讨论】:
-
Flux Store 的目的是保存需要跨多个组件共享的数据。如果没有组件需要该数据,除了一个并且数据不会被转换 - 不需要存储。
-
好的,让我详细说明一下。假设 Posts 仅在一个组件中需要:PostList。根据您的回答,在这种情况下我不需要 PostStore。当我的 PostList 组件被加载时,它会调用 LoadAllPostsAction 但动作发出的是谁?组件无法侦听 Actions,因为流程随即中断。它应该是 Component -> Action -> Store -> Component 并且这会关闭单向数据流。我错了吗?
-
我刚刚遇到a discussion,这应该有助于澄清事情,主要是第 4 和第 5 个帖子。
标签: reactjs reactjs-flux