2016-09-20 29 views
2

这不是一个React的具体问题。我正在考虑在Aurelia/Angularjs中实施Flux。为什么我们需要Flux中的调度员?

在阅读流量时,我并不确信调度员步骤的必要性。为什么组件不能直接调用商店来更新和检索数据?这种方法有什么问题吗?

例如:如果我有一个CarStore可以创建新汽车,更新汽车并获取汽车列表(只是CRUD API上的一个薄层),我应该能够通过直接调用来检索/更新列表来自car-grid组件的商店。由于商店是单身人士,每当列表更新时,car-grid应自动获得新项目。在这种情况下使用调度程序有什么好处?

回答

0

你可以看到here调度员为什么重要(查看为什么我们需要调度员)。我看到它的方式,这个想法基本上能够以同步的方式访问各种商店(一个回调在另一个商店被调用之前完成)。你可以这样做,这要归功于waitFor方法,其中允许您等待商店完成处理动作(或更多棕褐色)。有一个很好的例子in the docs。例如,您的应用程序可能会增长,而不是只有该CarStore,您有另一个应用程序的更新取决于CarStore更新。

+0

为什么不能在组件中管理该依赖关系?例如,如果您想更新多个互相依赖的商店,则可以使用承诺。 – Sayem

+0

例如,我们需要将它从'WishlistStore'中删除,当它被添加到'CartStore'时。从你的组件中,你可以添加一辆车到'CartStore',它返回一个承诺,当它成功时更新'WishlistStore'。 – Sayem

+1

我想你可以这样做,但Flux为您提供调度程序和函数,使它更容易。在极端情况下,您可以使用纯JavaScript来做所有事情,框架只是简单地为您提供一些工具和模式,以使其更易于组织和/或更好地组织。 –