gdy*_*tis 135 angular2-forms angular
我一直在阅读Angular2新的Forms API,似乎表单上有两种方法,一种是模板驱动形式,另一种是反应式或模型驱动型.
我想知道两者之间的实际差异,不是语法上的差异(显然),而是实际用途,哪种方法在不同情况下有更多好处.另外,选择其中一个是否有性能提升?如果是,为什么?
Ara*_*ind 150
模板驱动的表单功能
[(NgModel)]语法)反应表单功能
Ric*_*Lee 22
我认为这是对代码,策略和用户体验的讨论.
总之,我们改变了模板驱动的方法,它更容易使用它,反应(在模型驱动的方法中)为我们提供更多的控制,通过利用HTML之间的解耦产生更好的可测试形式(design/CSS团队可以在这里工作)和组件的业务规则(angular/js专家成员),并通过响应式转换,相关验证和处理复杂场景等功能来改善用户体验,如运行时验证规则和动态字段复制.
本文是一个很好的参考: Angular 2表单 - 模板驱动和模型驱动方法
了解反应式表单和模板驱动表单之间差异的最简单方法
我可以说,如果你想要更多的控制和可扩展性,请使用反应式表单
小智 5
模板驱动表单:
使用 FormsModule 导入
使用 ngModel 指令构建的表单只能在端到端测试中进行测试,因为这需要存在 DOM
表单值可以在两个不同的地方使用:视图模型,即 ngModel
表单验证,当我们向字段添加越来越多的验证器标签时,或者当我们开始添加复杂的跨字段验证时,表单的可读性会降低
反应形式:
一般可用于大规模应用
复杂的验证逻辑实际上更容易实现
使用 ReactiveFormsModule 导入
表单值可以在两个不同的地方使用:视图模型和 FormGroup
易于单元测试:我们只需实例化类、在表单控件中设置一些值并对表单全局有效状态和每个控件的有效性状态执行断言即可做到这一点。
使用 Observables 进行反应式编程
例如:密码字段和密码确认字段需要相同
响应式方式:我们只需要编写一个函数并将其插入 FormControl
模板驱动方式:我们需要定义一个指令并以某种方式将两个字段的值传递给它
https://blog.angular-university.io/introduction-to-angular-2-forms-template-driven-vs-model-driven/
| 归档时间: | 
 | 
| 查看次数: | 54420 次 | 
| 最近记录: |