Angular—組件間通訊

父子組件間通訊

父子組件間通訊還是非常簡單的,利用輸入屬性就可以完成。

1. 首先需要在子組件中聲明一個輸入屬性
在這裏插入圖片描述
2. 在父組件中也要聲明一個和子組件中類型相同的屬性
在這裏插入圖片描述
3. 在父組件的 html 文件中,傳遞給子組件
在這裏插入圖片描述
4. 然後就可以直接在子組件中的 html 中使用了
在這裏插入圖片描述

兄弟組件間通訊—中間人模式

當不是父子組件時,就不能用上面那種方法了。如果是兄弟組件,那麼就可以使用中間人模式。
中間人模式的意思就是:把父組件當作中間人,先由一個子組件將數據傳給父組件,再由父組件傳給另一個子組件。

1. 首先要解決的就是怎麼把數據從子組件傳遞給父組件,我們可以用 EventEmitter 對象來發射數據,然後由父組件來監聽,當監聽到 EventEmitter 發射了數據對象時,就執行相應的動作(即把數據傳給另一個子組件)。
 1)首先在子組件中聲明輸出屬性
在這裏插入圖片描述
 2)利用事件綁定,當發生某個事件時(比如:點擊事件),就將數據發射給父組件。
在這裏插入圖片描述
  將數據發射給父組件
在這裏插入圖片描述
  當父組件監聽到發射過來的數據時,就執行相應的事件

<app-price-quote (buy)="BuyStockHandler($event)"></app-price-quote>
  BuyStockHandler(event : PriceQuote){
  	//將數據賦給父組件的屬性,接收發射過來的數據
    this.priceQuote = event;
  }

2. 接下來就非常簡單了,由父組件將數據傳給另一個子組件,就可以藉助輸入屬性來實現,和上面的父子組件通訊一樣。

總結

其實中間人模式的難點就在於子組件怎麼將數據傳遞給父組件,我們可以通過藉助 EventEmitter 對象來實現,接下來就和父子間的通訊一樣了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章