2016-08-23 41 views
3

我想知道爲什麼有不同的工藝在Angular2中的組件之間共享數據,如下所示:https://angular.io/docs/ts/latest/cookbook/component-communication.html將數據從組件傳遞到Angular2中的其他組件的技術之間有什麼區別?

例如,「輸入綁定」非常易於使用。爲什麼我會打擾「父母和孩子通過服務進行交流」?

是否存在性能問題?或者它們完全相同,只取決於維護的方便程度。

感謝,

回答

1

輸入用於綁定直接家庭(父 - 子),同時可以爲其他關係使用的服務。我相信這是一個設計選擇。

喜歡這裏,他們都可以溝通,因爲他們是「感動」對方(哇,這又怪異的真快):

<parent> 
    <child/> 
</parent> 

在這裏,您可以使用輸入,輸出,它的快速和優雅。

凡爲

<parent> 
<child> 
    <subchild></subchild> 
</child> 
<otherChild> 
    <otherSubChild></otherSubChild> 
</otherChild> 
</parent> 

在這裏,如果你想從otherSubChild傳達給subChild你會使用一個服務,因爲他們的關係並不密切。

Altough,爲兄弟通信還有一個絕招:Catch event in sibling component

<parent (event)="sis.onEvent"> 
    <bro/> <-- this is the guy emitting the event 
    <sis #sis/> 
</parent> 
換句話說

所以,只要他們是「接觸」(上帝,我需要一個更好的詞),對方你不不必依靠服務。

+0

謝謝。你認爲應該使用服務來使「兄弟」溝通嗎? ? –

+0

@JohnDoetheDoe我編輯了我的回覆,這是你說的兄弟交流的意思嗎?實際上我幾天前問過類似的問題:) – Ced

相關問題