模板驱动表单和使用服务的反应式表单之间的区别

Difference between Template Driven Form and Reactive Form using a service

我想知道什么时候应该使用模板驱动表单而不是响应式表单。我知道基于那个问题的理论(),但我不知道哪个与 Angular Material 一起使用。一直怀疑到底是哪个用的

有人能帮帮我吗?

提前致谢。

作为一名专注于 Angular 的开发人员,我建议始终使用响应式表单设置。

开发人员会争论,但相信我,您以后会省去自己的麻烦。 Netanel B 也在这里写道:Why It’s Time to Say Goodbye to Angular Template-Driven Forms

假设您想要一个非常简单的输入,您可能很想简单地使用

  • ng模型
  • 模板变量
  • @ViewChild

他们现在可能还好。

但是假设您需要添加:

  • 验证
  • 正在观察变化
  • 以编程方式更新值

这些都需要您依赖并围绕您选择的访问输入的方法进行编码。

其中 Reactive forms 是 pre-built API,它为每个需求带来了标准。

Template-driven 表格

  • 开发静态表单时使用template-driven表单。静态意味着表单的结构和逻辑是固定的。例如。表单字段的数量没有变化,表单验证规则对于不同的用户角色是相同的等
  • 例如登录表单、重设密码表单、输入和编辑地址数据的表单、订单数据和类似的固定数据结构。

Reactive-forms

  • 如果表单应支持动态数据结构和逻辑,请使用反应式表单方法。例如动态调查表格、add/delete 0..n 标签或 phone 数字的表格、为不同用户角色提供不同验证的表格等。

  • 反应式表单的结构和逻辑主要在TypeScript中实现。相应的 HTML 工件仅引用 TypeScript 中定义的表单控件。在最高扩展阶段,可以在运行时基于数据结构完全生成反应式表单。

更多细节可以参考下面这个link