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

问题描述 投票:3回答:3

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

在阅读通量时,我不相信调度程序步骤的必要性。为什么组件不能直接调用存储来更新和检索数据?这种方法有什么问题吗?

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

reactjs aurelia flux
3个回答
2
投票

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

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

从来没有使用调度员,它没有引起任何问题。在这些操作中,我们只需调用getState()。dispatch。无论如何,商店是单身人士,强烈建议您没有多家商店。 (为什么要这么做...)


1
投票

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


1
投票

如果你只有一家商店,那么我认为调度员是多余的。但是,如果您有多个商店,则调度程序很重要,因此操作无需了解每个商店。

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

© www.soinside.com 2019 - 2024. All rights reserved.