我在使用Angular 6和NGRX构建(和学习!)MeteorJS应用时遇到了一个体系结构问题。
我基于出色的Todd Moto example建立了Redux架构,他在其中创建了Pizza设计师。
但是,他仅定义了一个名为Products
的功能分支。
那么,如果我添加另一个名为Oven的Feature分支怎么办?
烤箱要烘烤队列中的比萨饼。
状态树如下:
/
products
..pizzas
....toppings
..queue
oven
..baking
..served
烤箱模块可以访问Redux Store,但是,它不能简单地重用Products
功能下Store文件夹中定义的reduces和选择器。
首先,烤箱要查看队列中有哪些披萨,以便将它们放入烤箱中。
由于产品功能在ProductsState
中定义了reducers/index.ts
,因此我决定创建一个AppState并将其放在app/store
文件夹下。然后,此appState公开功能(外观与商店相同)。
不可能在功能之间共享选择器,所以我想我必须为两个功能都创建QueueSelector吗?
还是我要在app/store
文件夹下定义在两个功能中使用的选择器(不确定这是否已经是不良体系结构的标志),并且不要将它们变成功能选择器?
还是应该让Queue成为它自己的功能,然后您可以让功能调用其他功能简化程序吗?
我想从多功能NGRX应用程序中获得一些最佳实践方面的建议。
谢谢。