我应该为单独的页面创建状态吗?

问题描述

我第一次用angular和ngxs创建一个应用程序。我创建用于共享数据的存储。但是对于某些不共享数据的页面,例如编辑特殊项目,我是否应该为其创建特殊商店,例如item-edit.state.ts

我试图找到许多ngx的示例,但我自己无法解决这个问题。

解决方法

根据应用程序的大小,您可以具有全局状态,并为页面创建单独的选择器。例如,您可以将item-edit.selectors.ts设置如下:


export class ItemEditingSelectors {
  // uses the global state MyState
  @Selector([MyState])
  static viewModel(state: MyStateModel) {
    // do your selection logic here
  }
}

我个人希望选择器执行繁重的逻辑,将我的状态解析为页面/组件所需的内容,以便您可以利用它们的备注。

此方法的一个优点是,您可以将页面/组件与状态形状脱钩,从而在需要时更轻松地执行状态更改,而不会对使用者页面/组件产生重大影响。