谁应该拥有物品的状态值?

Who should own the state value of an item?

我的 flux 应用程序显示了一个位置列表。当用户点击一个位置时,它变成 'active'。一次只能有一个活动位置。

位置状态应该是位置本身的 属性(例如 location.active)还是应该是全局状态的一部分,例如activeLocationId?

我已经编写了该应用程序的多个变体。很明显 active 不是项目本身的 属性(在本例中为 location),而是 UI 的 属性(activeLocationId).

一些好处:

  • 单一事实来源(您不会意外地拥有两个活动位置)。
  • 加载新位置列表不受影响(这与新列表是否包含活动位置无关)。
  • 便于查找活动位置 ID。