我是NgRx的新手,正在阅读其文档。但是,一开始我遇到以下句子:
状态是单个不变的数据结构。
状态用简单的话表示什么?需要一些简单的例子来理解这个概念。
我需要学习Flux和Redux才能理解这些概念吗?
答案 0 :(得分:2)
简单地说,在ngrx(或redux或其他状态管理系统)中的状态是在单个时间点描述系统的方式。
您可以将其视为一个普通的javascript对象,它一次可以代表整个应用程序。让我们举一个todo
的应用程序的简单示例,其中我可以标记一个完成的项目(通过完成的标志)或选定的项目(通过索引)。可能的状态可能看起来像这样:
{
items: [
{ text: 'Wash Car', completed: false},
{ text: 'Write Code', completed: true}
],
selectedIndex: 0
}
如果我决定选择第二个索引,则我的状态未来状态将如下所示:
{
items: [
{ text: 'Wash Car', completed: false},
{ text: 'Write Code', completed: true}
],
selectedIndex: 1
}
因此,状态表示您在单个时间点内的应用逻辑。视图的实现取决于您-角度,反应和移动应用程序可以共享相同的状态并使用不同的视图层。
某些状态管理系统要求状态为immutable,这意味着在todos
示例中,我不会简单地更改状态,而是创建一个全新的状态来表示系统中的更改。
有multiple reasons,但也许最明显的是这种质量有助于Web系统识别状态的变化并相应地更改视图。
NgRx是特定于角度的状态管理系统。如NgRx页中所述:
NgRx Store为受Redux启发的Angular应用程序提供反应状态管理。
因此,一个很好的陈述就是学习redux(不变性的规则来自redux)。您可以将NgRx看作基于RuxJS的基于Redux的状态管理。我建议拼命学习每个概念,然后再学习NgRx。
更新:这些问题可能有用