Flux / Redux:为什么术语" Store"?还有更好的选择吗?

时间:2016-05-06 18:59:32

标签: store redux flux

自从我了解了Flux及其实现/' flavors',例如Redux," Store"让我不满意。在我看来," Store"与Flux所做的事情截然不同。

实际上,当我搜索标签" store"时,它会提出以下内容:

  

商店是一组集成对象的数据存储库。这些对象使用数据库模式中定义的类建模。数据存储不仅包括数据库之类的数据存储库,它还是一个更通用的概念,包括可以存储数据的平面文件。

我知道这个定义是针对与JavaScript无关的东西,但这对我来说听起来很合乎逻辑,更接近于我如何理解" Store":以某种形式管理数据存储的组件

在Flux(和Redux)中,Store管理State,它是值/对象的任意集合。两个库都包含Actions的概念,这些对象描述了需要执行的操作。 Flux Store通过订阅Dispatcher接收Actions,Action处理程序包含更改State的逻辑。 Redux Store包含一个dispatch(action)方法,该方法接受一个传递给指定Reducer的Action对象,该对象又包含修改状态的逻辑。在这两种情况下,当操作更改状态时,商店将通知相关方(例如,查看组件)此更改。可选地,Action Creators可用于进行"调度"行动更舒适,更不容易出错。

(我知道我在上面的描述中略过了一些细节和细微差别,但这不是我的观点。)

因此,Flux / Redux商店有多种用途:

  1. ' Action Router':将收到的Action转发给相应的'处理程序' /' reducer'。
  2. '行动申请人':将行动结果应用于州。
  3. ' State Observer':通知感兴趣的各方改变状态。
  4. 在这些情况中,我都没有看到管理数据存储的概念。然后为什么这个词" Store"?它究竟是什么'存储'?

    我对你认为什么是好的选择非常感兴趣。如果你现在自己创建这个库,那么命名这个组件的最佳方法是什么?

    非常感谢您的想法!

    阿贝尔

1 个答案:

答案 0 :(得分:0)

  

实际上是什么'存储'?

"商店"表示应用程序的UI状态。如果您将其视为具有侦听器的单个不可变数据结构(如Redux),那么术语"存储"对我有意义。

查看漂亮的Redux文档以获取更多详细信息http://redux.js.org/docs/introduction/ThreePrinciples.html