Angular同级组件之间的通信

       在angular2以上版本中,父子组件之间的通信网上教程一搜一大把,再次我就不多赘述.但是在实际项目当中不仅仅是父子组件之间需要通信,在许多情况下非父子组件之间也需要进行通讯,这怎么办呢?网上搜索资料得到两种通信方式( emit方式向上发射消息以及broadcast方式向下发送消息)

办法1 : 使用组件中间人模式

        两个组件之间往上必然存在着共同的曾曾曾曾爷爷组件(至少根组件必然是它们的父级组件),利用emit先将信息发送到中间人,中间人收到消息之后立即使用broadcast发送给另一个组件,这样就完成了两个非父子组件之间的通信.这中方法适合ABC三个组件在功能上密不可分的情况下,他们具有一致性(要删除就一起删除).

参考网址https://blog.csdn.net/qq_34645412/article/details/77984640

办法2 : 使用一个service充当中间人

        建立一个service用来当做中间人,这样做的优点是能很好的分离组件之间的功能,是AB之间的通信,和中间人C实际上没有多大关系,C只是做一个转发工作,如果某一天C组件不需要了,进行了删除,AB又得重新寻一个中间人!这就非常麻烦.而使用一个service充当中间人,则能避免这些麻烦.在service中使用emit或者broadcast方式发送消息都是可行的! 本君很懒就不上代码了,但是参考文章在herehttps://blog.csdn.net/Young4Dream/article/details/78504401


版权声明:本文为Sakura__Lu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>