angular - 从 Angular 8 中的多个组件以多种方式更新组件的最佳方法是什么?
问题描述
假设我有一个显示名称列表的组件 A。
我希望能够从组件 B、C、D 和 E(既不是 A 的父母、孩子也不是兄弟姐妹)中更新这些名称。而且我想以多种方式更新名称:我希望能够更改名称,将名称大写,为名称添加前缀,更改颜色......
我知道我可以使用服务来做到这一点,每个更新类型都有一个可观察的,然后调用
myService.myUpdateTypeObservable$.next(myNewValue);
然后订阅我的组件 A 中的所有 observables。
但我想构建一个可扩展的系统,也许有一天我会有 10 个新组件以 10 种新方式更新名称。因此,我认为最好的办法是创建一个全局更新 observable,然后从组件 B、C、DE 调用类似:
myService.myGlobalUpdateObservable$.next({type: 'name-color-update', value: {newColor: "#123456"}});
然后只订阅那个 observable 并通过切换结果类型进行所需的修改。
我想知道这是否是最好的方法?如果有相关的最佳实践?
非常感谢!
解决方案
我认为您想要做的是使用某种状态商店。
我建议NGRX或秋田。
然后,您将从一个地方读取您的姓名,并从一个地方解析修改。
推荐阅读
- tls1.2 - 代理中的 TLS 1.3 到 1.2 降级
- android - 对象类型的参数类型
- ios - 自动高度维度单元格 TableView
- can-bus - STM32F091 CAN 不传输(另外,示例使用了不存在的功能???)
- amazon-web-services - 如何根据 AWS 中 Batch 进程的 CPU 使用率垂直扩展我的 Ec2 服务器?
- sql - 在 Apache Superset 中将基于查询的过滤器添加到仪表板
- python - 需要帮助使用 pymysql 在数据库中搜索特定值
- python - 如何在这里找到独特的元素?
- postgresql - 如何将多个json对象一键合并为一个?(postgresql)
- python - 在pygame中使用归一化向量移动不一致?