2017-06-15 27 views
6

Rozpoczynamy nowy projekt Angular 2 i zastanawiamy się, czy użyć formularzy reaktywnych czy formularzy szablonów. Czytanie w tle tutaj: https://angular.io/guide/reactive-formsAngular 2 Reactive Forms vs Formy szablonów

O ile wiem, największą zaletą Reactive Forms jest to, że są synchroniczne, ale mamy proste formy i nie sądzę, aby asynchroniczność powodowała problemy. Wydaje się, że z Reacthem jest dużo więcej narzutów, na powierzchni więcej kodu do robienia tych samych rzeczy.

Czy ktoś może użyć solidnego przypadku użycia, w którym używałbym Reactive przez prostsze formularze szablonów?

Odpowiedz

27

Template-driven vs Reactive Forms

Jest to slajd z mojego kursu na formularzach Pluralsight. Niektóre z tych punktów mogą być dyskusyjne, ale współpracowałem z osobą z zespołu Angular, który opracował formularze, aby utworzyć tę listę.

+0

wielkim skrócie, zastanawiam się, czy można podać przykład tego, co czujesz złożony scenariusz może być? – bwobbones

+0

Reguły walidacji, które zmieniają się w zależności od użytkownika (różne reguły dla różnych krajów lub administratora w stosunku do użytkownika standardowego), dynamicznie dodając elementy wejściowe, czekając na sprawdzanie poprawności, aż po pewnym czasie, który użytkownik przestał pisać. To właśnie przychodzi od razu na myśl. Możesz obejrzeć kurs, zanim podejmiesz decyzję: https://app.pluralsight.com/library/courses/angular-2-reactive-forms/table-of-contents. Możesz zapisać się na bezpłatny tydzień. – DeborahK

+0

sensu dla mnie! – bwobbones

1

Zaletą projektowania opartego na szablonie jest jego prostota. W kontrolerze nie będzie dużo kodu. Większość logiki dzieje się w szablonie. Jest to odpowiednie dla prostych formularzy, które nie potrzebują dużej logiki za kodem HTML.

Jednak każda forma ma stan, który można aktualizować za pomocą wielu różnych interakcji i od dewelopera aplikacji zależy zarządzanie tym stanem i zapobieganie jego uszkodzeniu. Może to być trudne w przypadku bardzo dużych formularzy i może powodować błędy.

Z drugiej strony, jeśli potrzebna jest większa logika, często istnieje również potrzeba przeprowadzenia testów. Wtedy projekt oparty na reaktywnym modelu oferuje więcej. Możemy przetestować logikę walidacji formularza. Możemy to zrobić, tworząc instancję klasy, ustawiając pewne wartości w formularzach kontrolnych i wykonując testy. W przypadku złożonego oprogramowania jest to absolutnie niezbędne do projektowania i konserwacji. Wadą modelu opartego na reaktywnym modelu jest jego złożoność.

Istnieje również sposób mieszania obu typów konstrukcji, ale miałoby to wady obu typów.

Można znaleźć to wyjaśnione w prosty przykład kodu dla obu sposobów tutaj: Introduction to Angular Forms - Template Driven vs Model Driven or Reactive Forms