2016-08-23 43 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

相关问题