从子组件获取数据的首选方法



想象一下,我有两个组件ParentChildChild用于收集Parent以后需要的用户输入。

现在我正在考虑两种方法来实现这一目标:

选项 1:

<child-component [data]="childData" (done)="onDone()"></child-component>

父级基本上childData = {}传递给ChildChild将东西写入data使其在ParentchildData中可用,并在完成后发出done

选项 2:

<child-component (done)="onDone(data)"></child-component>

完成后,Child发出done和相应的数据。

恕我直言,选项 2 似乎更好地遵循 Angular2 的概念,但选项 1 立即提供数据。你会考虑选项 1 的不良做法吗?

还有我没有想到的另一种选择吗?

要真正成为独立的组件,父组件不应该对完成做出反应,完成应该对父级监视的dataModel做一些事情,并且由于触发了更新而做出反应。

对我来说,这是实现父子关系的更简洁的方式。原因是当孩子改变时,每个使用子项的父母都需要了解所做的已经更改,但是如果完成发生在子项内部并且父母可以从父项和子项共同的另一个来源解释它,则父项和子项都是松散耦合的。

在这种情况下,这是一个

选择问题,您的选项和我的选项都应该可以解决问题,这取决于您正在构建的应用程序类型,如果您正在构建轻量级应用程序,您可以使用任何模型,但是随着应用程序变大,这些父子依赖项会回来咬我们。

最新更新