ngrx:reducers 函数在调用时如何被调用?
ngrx : how the reducers function are invoked, when it is invoked?
我正在尝试使用 ngrx 库来管理我的应用程序的状态。我浏览了许多 ngrx 文档和 git 页。我理解有三个重要的概念:
- 商店
- 减速机和
- 动作
Store 是我们应用程序的单一数据源。因此,对数据的任何修改或检索都是通过 Actions 完成的。我的问题是当一个动作被发送到商店时到底发生了什么?它如何知道要调用哪个 reducer?它是否解析所有注册到商店的减速器?可以有多个同名的动作,在这种情况下会发生什么?
提前致谢。
一图胜千言...
来源:Building a Redux Application with Angular2
示例代码:ngrx-todo-app
我的问题是,将操作发送到商店时到底发生了什么?
所有注册的减速器都有机会处理这个动作
它如何知道要调用哪些 reducer?
所有注册的减速器都被调用。尝试将 console.logs 放入所有 reducer 中,您可以自己看到。
它是否解析所有注册到商店的减速器?
是
可以有多个同名的动作,在那种情况下会发生什么?
如果您有多个同名操作,它们将被同等对待。例如,如果我使用负载 3 发送类型 "ADD",然后使用负载 3 发送一个名为类型 "ADD" 的不同操作,那将是同一件事。
Ngrx 没那么聪明。假设我们有以下减速器:
const 减速器 = {
博客:BlogReducer,
post:PostReducer,
评论:CommentReducer
}
说我派遣'ADD_COMMENT'。基本上 BlogReducer 会首先尝试处理它,然后是 PostReducer,最后是 CommentReducer。排序取决于您如何指定上面的 reducers 对象。所以如果我这样做:
const 减速器 = {
评论: CommentReducer,
博客:BlogReducer,
post:PostReducer
}
CommentReducer 将是第一个尝试处理 'ADD_COMMENT'.
的人
我正在尝试使用 ngrx 库来管理我的应用程序的状态。我浏览了许多 ngrx 文档和 git 页。我理解有三个重要的概念:
- 商店
- 减速机和
- 动作
Store 是我们应用程序的单一数据源。因此,对数据的任何修改或检索都是通过 Actions 完成的。我的问题是当一个动作被发送到商店时到底发生了什么?它如何知道要调用哪个 reducer?它是否解析所有注册到商店的减速器?可以有多个同名的动作,在这种情况下会发生什么?
提前致谢。
一图胜千言...
来源:Building a Redux Application with Angular2
示例代码:ngrx-todo-app
我的问题是,将操作发送到商店时到底发生了什么? 所有注册的减速器都有机会处理这个动作
它如何知道要调用哪些 reducer? 所有注册的减速器都被调用。尝试将 console.logs 放入所有 reducer 中,您可以自己看到。
它是否解析所有注册到商店的减速器? 是
可以有多个同名的动作,在那种情况下会发生什么? 如果您有多个同名操作,它们将被同等对待。例如,如果我使用负载 3 发送类型 "ADD",然后使用负载 3 发送一个名为类型 "ADD" 的不同操作,那将是同一件事。
Ngrx 没那么聪明。假设我们有以下减速器:
const 减速器 = { 博客:BlogReducer, post:PostReducer, 评论:CommentReducer }
说我派遣'ADD_COMMENT'。基本上 BlogReducer 会首先尝试处理它,然后是 PostReducer,最后是 CommentReducer。排序取决于您如何指定上面的 reducers 对象。所以如果我这样做:
const 减速器 = { 评论: CommentReducer, 博客:BlogReducer, post:PostReducer }
CommentReducer 将是第一个尝试处理 'ADD_COMMENT'.
的人