问题描述
我第一次用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
}
}
我个人希望选择器执行繁重的逻辑,将我的状态解析为页面/组件所需的内容,以便您可以利用它们的备注。
此方法的一个优点是,您可以将页面/组件与状态形状脱钩,从而在需要时更轻松地执行状态更改,而不会对使用者页面/组件产生重大影响。