SAP|SAP Commerce Cloud Spartacus UI 的高阶 reducer 设计
在 components.reducer.ts 里,loaderReducer 函数,会根据输入的 entityType,返回一阶 reducer.
文章图片
然后在代码第86行,调用该一阶 reducer 进行状态转换,返回新的状态。
在 cms store reducers index.ts 里,该 reducer 被导入,见代码第21行:
文章图片
然后,在第49行,调用 entityReducer,给 COMPONENT_ENTITY 类型生产一个新的 reducer 函数。
【SAP|SAP Commerce Cloud Spartacus UI 的高阶 reducer 设计】
文章图片
这个新的 reducer 的函数体:
文章图片
getReducer 在何时会被调用?
文章图片
除了 index.ts 之外,其他都是单元测试代码:
文章图片
通过工厂方法 + injection token 的方式暴露给外部:
文章图片
最后被导入到 CmsStore module 的 providers 区域里即可:
文章图片
更多Jerry的原创文章,尽在:"汪子熙":
文章图片
推荐阅读
- Spring|Spring Cloud Feign实现文件上传下载的示例代码
- 为Google|为Google Cloud配置深度学习环境(CUDA、cuDNN、Tensorflow2、VScode远程ssh等)
- 【SpringCloud-Alibaba系列教程】8.一文学会使用sentinel
- java|java B2B2C 仿淘宝电子商城系统-Spring Cloud构建分布式电子商务平台
- Spring|Spring Cloud Feign组件
- Spring|Spring Cloud Alibaba之负载均衡组件 - Ribbon
- Spring|Spring Cloud学习day98(Eureka的原理和Ribbon负载均衡)
- 史上最简单的SpringCloud教程|史上最简单的SpringCloud教程 | 第十篇: 高可用的服务注册中心(Finchley版本)
- Spring|Spring Cloud Gateway真的有那么差吗()
- (三十)java版spring|(三十)java版spring cloud+spring boot+redis多租户社交电子商务平台- gateway限流