Я читал о Angular2, новом Forms API, и кажется, что есть два подхода к формам, один из них - формы, управляемые шаблоном, другой - формы реагирующие или модели.
Я хотел бы знать практическое различие между ними, не различие в синтаксисе (очевидно), но практическое использование и какой подход более выгоден в различных сценариях. Кроме того, есть ли прирост производительности при выборе одного над другим? И если да, то почему?
angular
angular2-forms
gdyrrahitis
источник
источник
Ответы:
Возможности шаблонных форм
[(NgModel)]
синтаксиса)Реактивные формы
источник
Я думаю, что это обсуждение кода , стратегии и пользовательского опыта .
Таким образом, мы переходим к шаблонно-управляемому подходу, с которым легче работать , к реактивному (в модельно-ориентированном подходе), чтобы дать нам больше контроля , что приводит к лучшей форме для тестирования, используя разделение между HTML (design / Команда CSS может работать здесь) и бизнес-правила компонента (специалисты по angular / js), а также улучшить пользовательский опыт с такими функциями, как реактивные преобразования, коррелированные проверки и обрабатывать сложные сценарии. как правила проверки во время выполнения и дублирование динамических полей.
Эта статья является хорошим справочником: Angular 2 Forms - шаблонно-управляемые и модельно-управляемые подходы
источник
Вот краткое изложение сравнения между шаблонно-управляемой и реактивной формами, хорошо объясненное Деборой (Дебора Курата),
источник
Реактивные формы:
Шаблонно-управляемые формы:
В итоге , если формы очень важны для вашего приложения или в вашем приложении используются реактивные шаблоны, вы должны использовать реактивные формы. В противном случае ваше приложение предъявляет простые и простые требования к формам, таким как вход, вы должны использовать формы на основе шаблонов .
Есть угловая официальная ссылка
источник
Самый простой способ узнать разницу между реактивными формами и формами на основе шаблонов
я могу сказать, если вы хотите больше контроля и масштабируемости, используйте Reactive формы
источник
Шаблон управляемых форм:
импортируется с помощью FormsModule
Формы, созданные с помощью директивы ngModel, могут быть протестированы только в сквозном тестировании, поскольку для этого требуется наличие DOM
Значение формы будет доступно в двух разных местах: модель представления, т.е. ngModel
Проверка формы, так как мы добавляем в поле все больше и больше тегов проверки или когда мы начинаем добавлять сложные проверки по полям, читаемость формы снижается
Реактивные формы:
Может обычно использоваться для крупномасштабных заявлений
сложная логика проверки на самом деле проще реализовать
импортируется с использованием ReactiveFormsModule
Значение формы будет доступно в двух разных местах: модель представления и FormGroup.
Простой в модульном тесте: мы можем сделать это, просто создав экземпляр класса, установив некоторые значения в элементах управления формы и выполнив утверждения в отношении глобального действительного состояния формы и состояния достоверности каждого элемента управления.
Использование Observables для реактивного программирования
Например: поле пароля и поле подтверждения пароля должны быть идентичны
Реактивный путь: нам просто нужно написать функцию и подключить ее к FormControl
Путь на основе шаблонов: нам нужно определить директиву и каким-то образом передать ей значение двух полей
https://blog.angular-university.io/introduction-to-angular-2-forms-template-driven-vs-model-driven/
источник