谁负责从带有缓存的 Flux 应用程序中的服务器获取数据?
Posted
技术标签:
【中文标题】谁负责从带有缓存的 Flux 应用程序中的服务器获取数据?【英文标题】:Who is responsible to fetch data from server in a flux app with caching? 【发布时间】:2015-04-07 04:22:50 【问题描述】:在 Flux Webchat 示例应用程序和 README 图中,动作创建者似乎应该从服务器检索数据。
我看到的问题是,如果数据已经在存储中,则可能不需要提取。商店是唯一知道的,因此需要实际调度操作。
我认为最好尽可能获取非规范化数据,以尽量减少 xhr 调用。如果商店是非规范化的,例如MessageStore
将包含呈现消息所需的所有数据。每条消息都像
"id": 42
"message": "Héllo, you tried reactjs-flux too. Awesome isn't it!"
"user": id: 1337, username: "amirouche", bio: "maker",
"likes": [id: 2600, username: "NinjaTurtle", id: 2601, username: "Peer"
商店可能有责任(通过事件?)用部分用户模型更新 UserStore。
我想到的另一种方法是拥有一些规范化的商店,并使用视图期望的架构创建特定的商店。
在这种情况下,在我看来,动作创建者只对调度有效负载有用,即。没用。
你怎么看?
【问题讨论】:
【参考方案1】:我的商店通常负责获取数据。这样做可以确保所有逻辑都可以由存储本身管理,并且您可以完全控制何时/如何/为什么获取数据。
您还可以让商店相互通信,这也是商店应该负责处理/获取数据的另一个优点。
另外,正如 Flux 模式所描述的: “Stores 包含应用程序的状态和逻辑。它们的作用有点类似于传统 MVC 中的模型,但它们管理着许多对象的状态......” 让商店管理从 API/服务器端获取数据是有意义的。
【讨论】:
感谢您的回答(我的问题表述得很糟糕)。好像我发布的图表已经过时了,我可以在通量网站上找到它。谢谢。参考:facebook.github.io/flux/docs/overview.html#content以上是关于谁负责从带有缓存的 Flux 应用程序中的服务器获取数据?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Flux 构建一个编辑表单,谁实际将数据 POST 到服务器:操作、存储、视图?