【发布时间】:2019-10-27 21:43:41
【问题描述】:
根据我对组件间数据通信的理解,我们可以通过@input(),@output(),做一个普通的广播服务来实现。
我相信服务是 @input 和 @output 的最佳方式,具体取决于各种条件,例如
文件夹结构应该像嵌套结构一样处于父子模式。
我们不能对正在处理的组件使用@output,因为我们永远找不到它的选择器。
我们也不能将@input & @output 用于非父/子组件。
最好是做一个通用的通信服务,这样我们甚至可以在同级组件(不是父子)和子父组件之间进行通信。
所以我需要你所有的意见,我在这里还是更好的方式??
【问题讨论】:
-
我认为你应该在这里查看组件交互的文档:angular.io/guide/component-interaction。组件之间有几种通信方式,您选择哪种方式取决于您的要求。例如,如果您有一个在应用程序的不同部分重复的表单。对于这种情况,最好使用
@Input、@Output,因为您可以通过@Input轻松地将任何数据从父组件(表单)传递给子组件(表单),并在提交表单时向父组件。 -
另外,文件夹结构不参与父子交互。当一个组件使用其中的另一个组件时,它成为父组件,因为它具有更广泛的范围,而子组件可能是该范围的一部分。因此,您可以根据需要在文件夹结构中使用组件,只需使用正确的导入语句将子组件导入父组件。
标签: angular service angular7 conceptual angular7-router