Каковы практические различия между шаблонами и реактивными формами?
Я читал о Angular2 новом Forms API, и кажется, что есть два подхода к формам: один - управляемые шаблонами формы, другие - реактивные или моделированные формы.
Я хотел бы знать практическую разницу между ними, а не разницу в синтаксисе (очевидно), но практическое использование и какой подход больше выгоден в разных сценариях.
Кроме того, есть ли выигрыш в производительности при выборе одного из них? И если да, то почему?
Ответы
Ответ 1
Поддерживаемые шаблоны форм
- Простота использования
- Подходит для простых сценариев и не подходит для сложных сценариев.
- Подобно AngularJS
- Двусторонняя привязка данных (с использованием синтаксиса
[(NgModel)]
)
- Минимальный код компонента
- Автоматическая отслеживание формы и ее данных (обрабатывается Angular)
- Тестирование модулей - еще одна проблема.
Функции активных форм
- Более гибкий, но требует много практики.
- Обрабатывает любые сложные сценарии
- Связывание данных не выполняется (неизменная модель данных предпочтительнее большинства разработчиков)
- Больше кода компонента и меньше разметки HTML
- Реактивные преобразования могут быть сделаны такими, как
- Обработка события на основе времени отладки
- Обработка событий, когда компоненты различаются до изменения
- Динамическое добавление элементов
- Простое тестирование модулей
Ответ 2
Я думаю, что это обсуждение кода, стратегии и пользователя.
В целом мы меняем подход с шаблоном, который с легче работать с реактивным (в подходе, ориентированном на модель ) для предоставления нам большего контроля, что приводит к лучшей тестируемой форме, используя развязку между HTML (команда проекта /CSS может работать здесь) и бизнес-правила компонента (angular/js) и улучшить пользовательский интерфейс с такими функциями, как реактивные преобразования, коррелированные проверки и описать сложные сценарии как правила проверки времени выполнения и дублирование динамических полей.
Эта статья является хорошей ссылкой:
Angular 2 формы - ориентированные на шаблоны и ориентированные на модели подходы
Ответ 3
Существует хорошее обсуждение двух и преимуществ/недостатков:
http://blog.angular-university.io/introduction-to-angular-2-forms-template-driven-vs-model-driven/