2017-06-15 107 views
6

我們正在開始一個新的Angular 2項目,並且正在考慮是否使用Reactive Forms或Template Forms。背景閱讀這裏:https://angular.io/guide/reactive-formsAngular 2 Reactive Forms vs Template Forms

據我所知,活性形式最大的好處是,他們是同步的,但我們有簡單的形式和我不認爲異步會引起我們的問題。 Reactive似乎有更多的開銷,表面上有更多的代碼來做同樣的事情。

有人可以提供一個堅實的用例,我會使用簡單的模板形式反應?

回答

27

Template-driven vs Reactive Forms

這是我在Pluralsight形式當然幻燈片。其中一些觀點可能是有爭議的,但我與來自開發Forms的Angular團隊的人一起合作了這個列表。

+0

大彙總,不知你是否可以提供你的感覺是什麼複雜的方案可能是一個例子嗎? – bwobbones

+0

基於用戶更改的驗證規則(針對不同國家或管理員與標準用戶的不同規則),動態添加輸入元素,等待驗證,直到用戶停止輸入一段時間。這些是馬上想到的。你可以在你下定決心之前觀看課程:https://app.pluralsight.com/library/courses/angular-2-reactive-forms/table-of-contents。你可以註冊一個免費的一週。 – DeborahK

+0

對我有意義! – bwobbones

1

模板驅動設計的優勢在於其簡單性。控制器中不會有太多的代碼。大多數邏輯發生在模板中。這適用於在html代碼後面不需要太多邏輯的簡單表單。

但是每個表單都有一個狀態,可以通過許多不同的交互進行更新,並且由應用程序開發人員來管理該狀態並防止它被損壞。這對於非常大的表單很難做到,並且可能引入錯誤。

另一方面,如果需要更多邏輯,通常還需要測試。然後,反應式模型驅動設計提供了更多。我們可以單元測試表單驗證邏輯。我們可以通過實例化類,在表單控件中設置一些值並執行測試。對於複雜的軟件,這對於設計和可維護性來說是絕對需要的反應式模型驅動設計的缺點是其複雜性。

還有一種混合兩種設計類型的方法,但這會有兩種類型的缺點。

你可以找到這個簡單的示例代碼解釋了兩種方式在這裏: Introduction to Angular Forms - Template Driven vs Model Driven or Reactive Forms