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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值