首页 文章

Flux / Redux:为什么称“Store”?还有更好的选择吗?

提问于
浏览
1

自从我了解了Flux及其实现/'flavors'之后,比如Redux,“Store”这个词让我感到不满意 . 在我看来,“商店”与Flux所做的完全不同 .

实际上,当我搜索SO标签“store”时,它提出了以下内容:

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

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

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

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

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

  • 'Action Router':将收到的Action转发给相应的'handler' / 'reducer' .

  • 'Action Applier':将Action的结果应用于State .

  • 'State Observer':通知有关各方国家的变化 .

在这些情况中,我都没有看到管理数据存储的概念 . 那为什么这个词"Store"?究竟是什么'storing'?

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

非常感谢您的想法!

阿贝尔

1 回答

  • 0

    它实际上是什么'存储'?

    “store(s)”表示应用程序的UI状态 . 如果您将其视为具有侦听器的单个不可变数据结构(如Redux),那么术语“存储”对我来说是有意义的 .

    查看漂亮的Redux文档了解更多详情http://redux.js.org/docs/introduction/ThreePrinciples.html

相关问题