为什么我们需要Flux中的调度员?

时间:2016-09-20 07:44:24

标签: reactjs aurelia flux

这不是特定于React的问题。我正考虑在Aurelia / Angularjs实施Flux。

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

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

3 个答案:

答案 0 :(得分:1)

您可以看到here调度员为何重要(请查看“我们为什么需要调度员”部分)。我看到它的方式,基本上能够以同步方式访问各种商店(一个回调在另一个调用之前完成)。您可以通过waitFor方法来实现这一点,允许您等待商店完成处理(或更多棕褐色)。有一个很好的例子in the docs。例如,您的应用程序可能会增长,而不是仅仅拥有CarStore,而是您拥有另一个商店,其更新取决于CarStore更新。

答案 1 :(得分:1)

我已经使用React-native和Redux作为存储/视图状态更新器创建了几个大型应用程序。

无论如何,调度动作都是同步的。使用调度程序有一个很大的缺点,那就是失去了函数签名。 (调试,自动捕获类型错误,重构丢失,同一函数的多个声明,列表继续进行)

无需使用调度程序,它不会造成任何问题。在操作中,我们只需调用getState()。dispatch。无论如何,商店都是单身人士,强烈建议您不要开设多个商店。 (为什么要这么做...)

答案 2 :(得分:0)

如果您将只拥有一家商店,那么在我看来,调度员是多余的。但是,如果您有多个商店,则调度程序很重要,这样就不必知道每个商店都需要采取行动。

请注意,我并不是说如果您只有一家商店,则不应该抛弃调度员。这仍然是一个很好的模式,因为如果将来有需要,它可以为您提供支持多个商店的选项。