He estado leyendo sobre la nueva API de formularios de Angular2 y parece que hay dos enfoques en los formularios, uno es formularios basados en plantillas y otro son formularios reactivos o modelos.
Me gustaría saber la diferencia práctica entre los dos, no la diferencia en la sintaxis (obviamente) sino los usos prácticos y qué enfoque se beneficia más en diferentes escenarios. Además, ¿hay un aumento de rendimiento al elegir uno sobre el otro? Y si es así, ¿por qué?
angular
angular2-forms
gdyrrahitis
fuente
fuente
Respuestas:
Características de formularios controlados por plantilla
[(NgModel)]
sintaxis)Características de los formularios reactivos
fuente
Creo que es una discusión sobre código , estrategia y experiencia del usuario .
En resumen, cambiamos por un enfoque basado en plantillas que es más fácil de trabajar con él, a reactivo (en un enfoque basado en modelos) para darnos más control , lo que resulta en una mejor forma comprobable al aprovechar un desacoplamiento entre el HTML (diseño / El equipo de CSS puede trabajar aquí) y las reglas comerciales de los componentes (miembros especialistas en angular / js) y para mejorar la experiencia del usuario con características como transformaciones reactivas, validaciones correlacionadas y manejar escenarios complejos como reglas de validación de tiempo de ejecución y duplicación de campos dinámicos.
Este artículo es una buena referencia al respecto: Formularios Angular 2 : enfoques basados en plantillas y en modelos
fuente
Aquí está el resumen de la comparación entre la plantilla impulsada y las formas reactivas explicadas por DeborahK (Deborah Kurata) bien,
fuente
Formas reactivas:
Formas basadas en plantillas:
En resumen , si los formularios son muy importantes para su aplicación, o se usan patrones reactivos en su aplicación, debe usar formularios reactivos . De lo contrario, su aplicación tiene requisitos básicos y simples para formularios como iniciar sesión, debe usar formularios basados en plantillas .
Hay un enlace oficial angular
fuente
La forma más fácil de conocer la diferencia entre los formularios reactivos y los formularios basados en plantillas
Puedo decir que si quieres más control y escalabilidad, ve con formas reactivas
fuente
Formas controladas por plantilla:
importado usando FormsModule
Los formularios creados con la directiva ngModel solo se pueden probar en una prueba de extremo a extremo porque esto requiere la presencia de un DOM
El valor del formulario estaría disponible en dos lugares diferentes: el modelo de vista, es decir, ngModel
Validación de formulario, a medida que agregamos más y más etiquetas de validación a un campo o cuando comenzamos a agregar validaciones complejas de campo cruzado, la legibilidad del formulario disminuye
Formas reactivas
Generalmente se puede usar para aplicaciones a gran escala
lógica de validación compleja es en realidad más simple de implementar
importado usando ReactiveFormsModule
El valor del formulario estaría disponible en dos lugares diferentes: el modelo de vista y el FormGroup
Prueba fácil de unidad: podemos hacerlo simplemente instanciando la clase, estableciendo algunos valores en los controles del formulario y realizando afirmaciones contra el estado válido global del formulario y el estado de validez de cada control.
Uso de observables para programación reactiva
Por ejemplo: un campo de contraseña y un campo de confirmación de contraseña deben ser idénticos
Forma reactiva: solo necesitamos escribir una función y conectarla al FormControl
Forma guiada por plantilla: necesitamos definir una directiva y de alguna manera pasarle el valor de los dos campos
https://blog.angular-university.io/introduction-to-angular-2-forms-template-driven-vs-model-driven/
fuente