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

时间:2016-01-20 00:24:46

标签: angular angular2-template

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

现在我想到了两种方法来实现这个目标:

选项1:

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

家长基本上将childData = {}传递给ChildChild将内容写入data,使其在Parent childData中可用,并在完成时发出done

选项2:

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

Child完成时会发出done和相应的数据。

选项2似乎更好地遵循angular2 imho的概念,但选项1使数据立即可用。你会考虑选项1的不良做法吗?

还有另外一个我没想过的选择吗?

1 个答案:

答案 0 :(得分:3)

要成为真正独立的组件,父母不应该对完成做出反应,完成应该对dataModel做一些事情,父母通过触发更新来监视并做出反应。

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

在这种情况下,这是一个选择问题,你的选择和我的选择都应该诀窍,它取决于你正在构建的应用程序类型,如果你正在构建一个轻量级的应用程序,你可以逃脱任何模型,但随着应用程序变得越来越大,这些父子依赖关系会回来咬我们。