商店和模特之间的区别是什么?

时间:2015-05-13 01:45:10

标签: javascript reactjs-flux flux

在基于通量的应用程序中,存在称为存储的概念。我一直试图确定商店的特色以及它们与模特的区别?服务器通信是否发生在商店中?那发生在哪里?他们总是单身吗?

1 个答案:

答案 0 :(得分:2)

商店是域模型,而不是ORM模型。

他们管理逻辑域的应用程序状态。他们可以使用集合,单个值或两者的组合来管理状态。

但它们有许多特定功能,使它们与普通模型区别开来:

  1. 他们没有制定者。没有人从外面改变商店。
  2. 数据进入商店的唯一方法是通过他们向调度员注册的回调。他们通过此回调接收通过系统的每个操作。他们定义了他们将响应的行动,忽略了大部分行动。
  3. 他们公开曝光的唯一方法是注册/取消注册听众的一组getter和方法。
  4. 当他们管理的状态发生变化时,他们会发出change事件。这会向视图层发出商店状态已更改的警报,以便视图可以使用getter查询所需的新数据。
  5. 他们可以调用新数据,但是当返回该数据时,它应该采用新操作的形式,以便所有商店都可以响应它。这样做可以确保应用程序的弹性 - 您始终可以在整个系统中获得所有新数据。

    有些人更喜欢在动作创建者而不是商店中调用新数据,这会强制新数据来源于某个动作。我相信,这是完全可以接受的,实际上更常见。但实际上这两种风格都很好。