我有一个项目,我得到一个大型的前端JSON,它基本上成为程序的状态。 JSON的一个愚蠢的例子可能如下所示:
{
app: {
people: [
{
name: "bill",
dob: "04/05/2017",
}
]
}
}
所以这是我的数据。但是我的状态不是默认初始化可能看起来像这样。
app: {
people: []
}
我实际上希望它成为这个
app: {
people: [
{
name: "bill",
dob: "04/05/2017",
daysOld: 365
}
]
}
关于ngrx
/ ngxs
,我不明白的关键是我的模型和我的国家之间的关系。一个未能点火的灯泡。
或者我完全没有滑雪道?试图从一块巨石中提前生成整个商店只是错误的做法?例如,我的模型是否在某处,我使用它作为动态引用以后创建状态?
答案 0 :(得分:2)
过去一周我一直在学习ngxs。
这就是我的理解。
问:什么机制负责创建一组人?答:@State()
装饰类中的@Action()
decorated functions应负责使用side effects操纵应用程序的状态和操作(即HTTP GET / POST等异步工作)。
因此,在@Action
修饰函数中处理通过操纵应用程序状态和在服务器上持久化人物对象来创建人物对象。
答:在这种情况下,您可以选择一个应用程序状态切片,一个人的dob,然后计算年龄,然后返回值("派生"状态值)。这可以在@Select()
修饰函数中完成。
问:例如,我的模型是否在某处,我使用它作为动态引用以后创建状态?
答:我想大多数时候都是这种情况。因此,在@State()
装饰类中,我们将注入某种HttpPersonLoaderService
,您可以在某处调用以远程加载/保存。
最后,只想和你分享一个简单的ngxs example。这个简单的例子不会远程加载数据。