任何人都可以解释原因 我需要用它们吗?
在哪些情况下,与FormsModule相比,Reactive Forms让我的生活更简单,更好?
答案 0 :(得分:9)
基本上,如果您有非常简单的要求,FormsModule
就足够了。我的第一个表格都是FormsModule
。如果您只需要将表单输入绑定到模型属性,它们就很棒。
ReactiveFormsModule
第一次进行设置时会有更大的痛苦,但它们可以让您获得更多控制权。因为您在组件中创建表单元素,所以您可以轻松地执行以下操作:
FormsModule
,只需在单元测试中获取对表单实例的引用就很麻烦。由于我进行了切换,我没有回到FormsModule
。 See the docs
角度反应式表单促进了一种反应式编程,有利于显式管理非UI数据模型(通常从服务器检索)和面向UI的表单模型之间流动的数据,该模型保留HTML的状态和值控制在屏幕上。反应形式提供了使用反应模式,测试和验证的简便性。
使用反应式表单,您可以使用本指南中描述的技术在组件类中创建一个Angular表单控件对象树,并将它们绑定到组件模板中的本机表单控件元素。
您可以直接在组件类中创建和操作表单控件对象。由于组件类可以立即访问数据模型和表单控件结构,因此可以将数据模型值推送到表单控件中,并将用户更改的值拉回。组件可以观察表单控制状态的变化并对这些变化做出反应。
答案 1 :(得分:1)
反应表单和表单模块都可以根据您的需要完全接受。在Reactive Forms(模型驱动表单)中,您可以在组件上定义字段和验证,并将它们连接到您的html模板。它需要额外的代码但是它有一些优点。
例如,您可以根据代码中的决策更多地动态构建表单和验证。
另一个很大的好处是它使您的所有验证逻辑单元都可测试