首页 > 解决方案 > 从 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 并通过切换结果类型进行所需的修改。

我想知道这是否是最好的方法?如果有相关的最佳实践?

非常感谢!

标签: angularrxjsobservableangular8

解决方案


我认为您想要做的是使用某种状态商店。

我建议NGRX或秋田。

然后,您将从一个地方读取您的姓名,并从一个地方解析修改。


推荐阅读