我们如何使用 ngrx 数据的选择器的记忆能力及其能力?
如何从商店内的ngrx数据“entityCache”状态创建选择器?
谢谢
对我来说,一开始也有点困惑。选择器在Facade Pattern后面使用。
看看这篇文章https://medium.com/@thomasburlesonIA/ngrx-facades-better-state-management-82a04b9a1e39,它可以帮助你更好地理解。
ngrx/data默认使用该模式(这不是ngrx,尽管您可以创建自己的外观,如文章中所述)。
总结
----------------- ngrx -----------------
----------------- ngrx/数据-----------------
您可以在https://ngrx.io/guide/data/architecture-overview中找到更多信息
... 您的组件还订阅了一个或多个服务的 Observable 选择器,以便反应性地处理和显示这些命令产生的实体状态更改。 ...
但是,再次从文档中看起来很混乱......
看看这张照片
来自https://slides.com/jiali/deck-5#/14,也不错。
在@bkelley 所说的最后一张图片中,您可以使用EntityCollectionService,它是ngrx/data中的Facade
希望这有帮助
你能澄清一下你在寻找什么样的选择器吗?有EntityCollectionService
一堆预设选择器,但文档并不广泛。这是每个源代码的“内置”选择器列表。
/** Observable of the collection as a whole */
readonly collection$: Observable<EntityCollection> | Store<EntityCollection>;
/** Observable of count of entities in the cached collection. */
readonly count$: Observable<number> | Store<number>;
/** Observable of all entities in the cached collection. */
readonly entities$: Observable<T[]> | Store<T[]>;
/** Observable of actions related to this entity type. */
readonly entityActions$: Observable<EntityAction>;
/** Observable of the map of entity keys to entities */
readonly entityMap$: Observable<Dictionary<T>> | Store<Dictionary<T>>;
/** Observable of error actions related to this entity type. */
readonly errors$: Observable<EntityAction>;
/** Observable of the filter pattern applied by the entity collection's filter function */
readonly filter$: Observable<string> | Store<string>;
/** Observable of entities in the cached collection that pass the filter function */
readonly filteredEntities$: Observable<T[]> | Store<T[]>;
/** Observable of the keys of the cached collection, in the collection's native sort order */
readonly keys$: Observable<string[] | number[]> | Store<string[] | number[]>;
/** Observable true when the collection has been loaded */
readonly loaded$: Observable<boolean> | Store<boolean>;
/** Observable true when a multi-entity query command is in progress. */
readonly loading$: Observable<boolean> | Store<boolean>;
/** ChangeState (including original values) of entities with unsaved changes */
readonly changeState$:
| Observable<ChangeStateMap<T>>
| Store<ChangeStateMap<T>>;