Angular2:输出/输入与事件/视图子 - 组件交互



亲爱的,关于Web组件交互的黄金法则是:

  • 父引用直接子项
  • 子项不引用父项
  • 父->子项:通过方法调用
  • 子项->父项:通过事件

这种模式在许多项目中都为我们工作(YUI,JQuery等)那么Angular2呢?

我们应该使用:

  • 父级调用视图子级
  • 父侦听子事件

还是输入/输出?

首选看起来很漂亮。@angular2 @expert,你怎么看?

感谢大家,加布里埃尔

这取决于您的需要。需要明确的是Outputevents是一样的。所以流程非常相似:

  • 父级通过Input将数据传递给子级
  • 子项通过Output将数据传递给父项,EventEmitter
还有第三个选项,您可以在其中从子组件到父项

和父项到子项甚至一个组件到另一个组件进行双向通信。它使用服务注入,其中您的服务将具有Subject,注入此服务的组件可以订阅或更新主题值。

我认为服务方法是最好的,因为我知道很多人都觉得熟悉这个工作,并且是感觉宾至如归的好方法。如果您使用的是 Angular 材料主题,则不能直接使用 @input() @output( ) 和@viewchlid方法进行组件的通信。

最新更新