角度2反应形式与模板形式

bwo*_*nes 16 forms angular2-forms angular

我们正在开始一个新的Angular 2项目,并正在考虑是否使用Reactive Forms或Template Forms.背景阅读:https://angular.io/guide/reactive-forms

据我所知,Reactive Forms的最大优势在于它们是同步的,但我们有简单的形式,我不认为异步会导致我们的问题.Reactive似乎有更多的开销,表面上有更多代码可以做同样的事情.

有人可以提供一个可靠的用例,我会使用Reactive而不是更简单的模板表单吗?

Deb*_*ahK 57

模板驱动与活动表格

这是我在Pluralsight中关于Forms的课程的幻灯片.其中一些观点可能是有争议的,但我与Angular团队的人员合作开发了这个列表.

  • 我会添加这个差异https://angular.io/guide/reactive-forms#async-vs-sync (2认同)

Ber*_*ees 5

模板驱动设计的优点是简单。控制器中不会有太多代码。大多数逻辑发生在模板中。这适用于不需要 html 代码背后太多逻辑的简单表单。

但是每个表单都有一个状态,可以通过许多不同的交互进行更新,应用程序开发人员可以管理该状态并防止其损坏。对于非常大的表单,这可能很难做到,并且可能会引入错误。

另一方面,如果需要更多的逻辑,通常也需要进行测试。然后反应式模型驱动设计提供了更多。我们可以对表单验证逻辑进行单元测试。我们可以通过实例化类,在表单控件中设置一些值并执行测试来做到这一点。对于复杂的软件,这是设计和可维护性绝对需要的。反应式模型驱动设计的缺点是它的复杂性。

还有一种混合两种设计类型的方法,但这将具有两种类型的缺点。

您可以在此处使用两种方式的简单示例代码对此进行解释: Angular Forms 简介 - 模板驱动与模型驱动或反应式表单