0

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

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

选项1:

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

Parent 基本上传递childData = {}Child. Child写入东西data使其在Parent's中可用childData并在完成时发出done

选项 2:

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

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

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

还有其他我没有想到的选择吗?

4

1 回答 1

3

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

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

在这种情况下,这是一个选择问题,您的选择和我的选择都可以解决问题,这取决于您正在构建的应用程序类型,如果您正在构建轻量级应用程序,您可以摆脱任何模型,但作为应用程序变大了,这些父子依赖项会回来咬我们。

于 2016-01-20T01:30:51.477 回答