组件通信的静态观察者

时间:2019-01-09 20:27:41

标签: javascript angular typescript

根据分解标准,通常通过以下方式完成同级组件之间的通信:向父级发出事件,然后将事件转发给同级,或者创建一个包含可观察到的同级可以订阅的服务至。我认为这两种方法的实现和使用都比较麻烦,尤其是在例如子A仅在例如单击按钮时需要通知子B的情况下。

我偶然发现的另一种方法是在子A(ChildAComponent)中使静态可观察到

static onClickEmitter$ = new EventEmitter();

这样,我可以简单地将Child A导入到Child B中,然后订阅直接在ChildAComponent类上可用的Observable

ChildAComponent.onClickEmitter$.subscribe()

尽管从我到目前为止所看到的方法来看,这种方法可以很好地工作并且可以解决所有设置麻烦,但是我不确定这样做是否会带来主要和/或次要的警告/影响。这是一个可以更好地解释该方法的堆叠闪电战:
https://stackblitz.com/edit/angular-9hnlyx

这种方法合理吗?或者还有其他方法可以做到这一点?

0 个答案:

没有答案