我正在尝试使用ngrx库来管理我的应用程序状态。我已经浏览了许多ngrx文档和git页面。我知道有三个重要的概念:
商店是我们应用程序的单一数据源。因此,任何数据的修改或检索都是通过Actions完成的。我的问题是,当一个动作被发送到商店时到底发生了什么?它如何知道要调用哪个Reducer?它是否解析了注册到商店的所有减速器?在这种情况下,可能有多个具有相同名称的操作会发生什么?
提前致谢。
答案 0 :(得分:5)
答案 1 :(得分:2)
我的问题是,当一个动作被发送到商店时到底发生了什么? 所有注册的减速机都有机会处理行动
如何知道要调用哪个reducer? 调用所有已注册的Reducer。尝试将console.logs放入所有reducer中,您可以自己查看。
它是否会解析注册到商店的所有Reducer? 的是
在这种情况下,可能有多个具有相同名称的操作会发生什么? 如果您有多个具有相同名称的操作,则会对它们进行相同的处理。例如,如果我发送了类型" ADD"使用有效负载3然后调度一个名为type" ADD"有效载荷3也是一样的。
Ngrx并不聪明。我们假设我们有以下减速器:
const redurs = { 博客:BlogReducer, 发布:PostReducer, 评论:CommentReducer }
说我发送' ADD_COMMENT'。基本上BlogReducer将首先尝试处理它,然后是PostReducer,最后是CommentReducer。排序取决于您如何指定上面的redurs对象。所以,如果我这样做:
const redurs = { 评论:CommentReducer, 博客:BlogReducer, 发布:PostReducer }
CommentReducer将是第一个尝试处理' ADD_COMMENT'。