【问题标题】:architecture assessment for input form options in ng6?ng6 中输入表单选项的架构评估?
【发布时间】:2018-09-03 04:56:08
【问题描述】:

我试图从架构评估的角度来理解 Angular 6 输入表单。模板驱动的表单是一种选择。根据我在网上阅读的内容,模板驱动的表单通常被认为是“入门表单”,或者对于从 AngularJs 过渡的开发人员来说可能更自然的表单。

反应式表单是另一种选择。根据我在网上阅读的内容,反应式表单通常被认为比模板驱动的表单更强大、更灵活且可测试。这似乎是一个准确的评估?

我只浏览了文档,但发现动态表单提供了一种快速简便的方法,可以完全从元数据生成表单。

因此,动态表单似乎将成为架构评估的起点 b/c 这种方法将通过消除大部分 UI 工作来简化开发过程。您是否遇到过动态表单不足的特定场景?还是有一般直接和结构化的方法来适应动态表单的潜在限制?

对于大型企业应用程序,反应式表单似乎通常应被视为优于模板驱动表单的首选输入表单架构。你能证实这个说法吗?

【问题讨论】:

    标签: angular


    【解决方案1】:

    我完全同意你的观点。

    好的:是的! 反应式表单通常比模板驱动的表单更强大、更灵活且可测试。您可以添加自定义验证器、异步验证器、生成带有模型的表单、向表单动态添加控件或控制组,以及使用响应式表单执行所有这些类型的操作。

    动态表单只是响应式表单的扩展。它们确实允许您仅通过配置生成表单。但是设置它们可能有点棘手。考虑到不同类型的表单域。在 Angular 具有 demonstrated here 的示例中,它仅适用于 inputselect 列表。但是,如果表单也有radio 按钮、带有筹码的自动完成列表和其他一些类似的东西呢?我以前从未使用过动态表单。但是如果考虑到这样的用例,我认为设置和使用是一件相当困难的事情。不过,如果您是一家企业并且有多个 Web 项目,您希望为您的组件提供一致的外观和感觉,那么我想这将是一个不错的选择。

    坏处:动态表单绝对适合架构评估。但是它们并没有通过消除大部分 UI 工作来简化开发过程。事实上,我会说在反应式表单方面还有更多的 UI 工作。添加验证错误、从表单数组添加/删除表单控件或表单组、获取对表单中特定表单控件或组的引用等也有点棘手。所以那里有一些学习曲线。但是一旦你掌握了响应式表单,它们就会非常简单。

    同样,在动态表单的情况下,如果您希望在整个企业中拥有一致的表单,这是非常有成效的。但情况并非总是如此,具体取决于您的企业类型。

    何时使用:

    我不同意你最后的说法。使用特定类型的表单将完全取决于您尝试实现的用例类型。

    如果您有一个非常简单的用户入职表单,它接受来自用户的姓名和电子邮件,那么为此创建一个反应式表单将没有多大意义。

    但是,如果您有来自 API 的数据,那么您有一个用于该数据的模型,并且您想制作一个预先填写此数据的表单,以便用户可以更新它,那么对于这样的用例,反应式表单更受欢迎。

    希望这有一定的意义,并帮助您决定何时应该使用什么。

    【讨论】:

    • 谢谢悉达多。你用过动态表格吗?动态表单和响应式表单一样强大吗?如果不是,那么动态表单是否可以相对容易地扩展以具有与响应式表单相同的功能?或者动态表单通常被认为是交付一些简单表单的一个很好的节省时间的方法,但要理解引入额外的复杂性需要将输入表单重写为响应式输入表单?
    • 能否请您指向我阅读动态表单一词的链接?我的印象是动态表单和响应式表单是一回事。
    • 当然这是 angular.io 页面:angular.io/guide/dynamic-form。左侧导航表单部分描述了“模板驱动表单”、“反应式表单”和“动态表单”。但也许“动态表单”中的小写“f”表示“动态表单”是一种“反应式表单”实现。请您审查和 lmk 吗?
    • 谢谢悉达多。尽管每种类型的输入表单都有其优点,但听起来如果我需要为应用程序选择一种表单类型以保持一致性,那么 Reactive Forms 将是可行的方法
    猜你喜欢
    • 1970-01-01
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多