Angular组件之间的通信

Angular组件之间的通信方式分为 三种:

  1. 父组件向子组件通信(输入属性)
  2. 子组件向父组件通信(输出属性)
  3. 使用中间人模式通信

下面详细的介绍不同通信方式的实现方法:
一、父组件向子组件通信(输入属性)
分为两步:
1、在子组件上定义自己要接受父组件输入的参数:

  @Input()
  stockCode: string;
  @Input()
  amount: number;
  //@Input()修饰器表示stockCode、amount是要接受父组件传入属性的变量

2、在父组件的HTML模板中声明要输入的数据:

  <app-bind [stockCode]="stock" [amount]="data"></app-bind>
  //主要输入属性的name要一致,<app-bind>是子组件

二、子组件向父组件通信(输出属性)
分为三步:
1、在子组件中设置要输出的类型:

@Output()
lastPrice: EventEmitter<PriceQuote> = new EventEmitter();
//@Output()修饰器修饰要输出的变量
//PriceQuote这个泛型指的是:输出的变量类型

2、在html模板中设置事件:

<app-price-quote (lastPrice)="priceQuoteHandler($event)"></app-price-quote>
//lastPrice 是在子组件中设置的输出变量的name
//<app-price-quote>是子组件
//$event 保留了事件触发的dom的所有属性

3、在父组件的控制器中接收输出属性

priceQuote: PriceQuote = new PriceQuote('', 0);
//声明一个和输出变量类型相同的变量
priceQuoteHandler(event: PriceQuote) {
    this.priceQuote = event;
  }
//事件,用于接收输出属性

三、使用中间人模式通信
所谓中间人模式就是:当A =》 C 通信时,先将A =》B,B=》C,
B就是所谓中间人模式;
按照情况一般分为两种:
1、兄弟组件通信
这里我们选择父组件做为中间人,先是使用输出属性,再使用输入属性就OK了
2、非兄弟组件通信
选择一个依赖注入service做为中间人,然后进行通信。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值