我正在尝试从架构评估的角度理解Angular 6输入表单。模板驱动的表单是一种选择。根据我在网上阅读的内容,模板驱动的表单通常被认为是“入门表单”,或者对于从AngularJs过渡的开发人员来说更自然。
反应形式是另一种选择。根据我在网上阅读的内容,与模板驱动的表单相比,通常认为反应型表单更强大,更灵活且更具测试性。这似乎是一个准确的评估吗?
我只是看了一下文档,但是它很感激动态表单提供了一种快速简便的方法,可以仅从元数据完全生成表单。
因此,似乎动态表单将成为架构评估的起点b / c这种方法将通过消除大多数UI工作来简化开发过程。您是否遇到过动态表单不足的任何特定情况?还是一般来说,有没有简单而结构化的方式来适应Dynamic Forms的潜在限制?
对于大型企业应用程序,似乎应该将响应型表单视为首选的输入表单体系结构,而不是模板驱动的表单。您能确认一下这句话吗?
答案 0 :(得分:0)
对此我完全同意。
好:是的!反应性表单通常比模板驱动的表单更强大,更灵活且更具测试性。您可以添加自定义验证器,异步验证器,在考虑模型的情况下生成表单,将控件或控件组动态添加到表单中,以及使用响应式表单来做所有这些事情。
动态表单只是反应型表单的扩展。它们确实允许您仅通过配置即可生成表单。但是设置它们可能有些棘手。考虑到不同类型的表单域。在Angular具有demonstrated here的示例中,它仅用于input
和select
列表。但是,如果表单还具有radio
按钮,带有芯片的自动完成列表以及其他类似内容,该怎么办。我以前从未使用过动态表单。但是,如果考虑到这种用例,那么我认为设置和使用它是一件相当困难的事情。虽然,如果您是一家企业并且有多个Web项目,希望为您的组件提供一致的外观,那么我想这是一个不错的选择。
弊端:动态表单绝对适合进行架构评估。但是它们并没有通过消除大多数UI工作来简化开发过程。实际上,我想说的是,关于反应式表单,还有更多的UI工作。添加验证错误,从表单数组添加/删除表单控件或表单组,获取对表单中特定表单控件或组的引用等也有些棘手。因此,在这方面存在一些学习上的困难。但是一旦您掌握了Reactive Forms,它们就会非常简单。
再次使用动态表单,如果您希望在整个企业中拥有一致的表单,那将会非常有成果。但这并非总是如此,具体取决于您的企业类型。
何时使用:
不过,我不同意你的最后一句话。使用特定类型的表单将完全取决于您要实现的用例类型。
如果您有一个非常简单的用户入门表单,可以接受用户的姓名和电子邮件,那么为此创建响应式表单就没有多大意义。
但是,如果您有来自API的数据,那么您有一个用于此数据的模型,并且您想要创建一个预先填充了此数据的表单,以便用户可以对其进行更新,然后针对这种用例,使用Reactive表单是更可取的。
希望这有道理,并可以帮助您确定何时应使用什么。