FLUX 模式中如何以及在何处更新和检索数据?

How and where does updating and retrieving of data happen in the FLUX pattern?

我已经思考了一段时间,但未能找到有关后续 api (ajax) 请求主题的任何信息。

假设我们有用户列表,其中一个已更新。更新用户后,我想检索整个更新的用户列表。

我的问题涉及两个操作:

  1. 更新用户
  2. 检索所有用户

我很清楚,React 组件启动视图操作来更新用户,从而通过调度程序产生 API 请求。我不清楚的是第二个检索用户的请求发生在哪里。

正在查看 Facebook's Chat 示例...

目前我会在 API 中这样做,但我想知道是否有任何经过测试的模式可以解决这个问题。

您不需要执行两个 XHR 调用的两个操作。您实际上只需要一个导致两次 XHR 调用的操作。当心认为你应该引起一系列动作的倾向——这正是 Flux 旨在避免的反模式。

更新整个用户列表的副作用应该是 UserStore 响应 USER_UPDATED 操作所做的事情。

UserStore 将更新用户记录。这可以乐观地发生,也可以在服务器调用完成后发生。更新用户服务器端的 XHR 调用可以发生在 updateUser() 操作创建者或商店内。但是,您需要为该调用的 success/error 创建操作,以便商店可以做出适当的响应。

下一步可以乐观地发生,也可以在您从服务器取回数据后发生。在这种情况下,商店将进行 XHR 调用以检索用户列表以更新其持有的所有相关记录。

但与上一个 XHR 一样,您需要根据第二个 XHR 的成功或错误创建两个新操作。

创建新操作可以使您的应用程序非常灵活和有弹性。因此,如果任何其他商店需要了解这些 XHR 的结果,它已经在接收该数据。

如果我没有提到这一点,我会失职,如果您可以控制服务器端代码,您应该简单地构建一个端点来更新用户和 return 的新列表用户——这将使客户端代码更简单,整个过程也会更有效率。