¿Cuáles son las diferencias prácticas entre los formularios reactivos y basados ​​en plantillas?

Resuelto gdyrrahitis asked hace 8 años • 6 respuestas

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 es formularios reactivos o basados ​​en modelos.

Me gustaría saber la diferencia práctica entre los dos, no la diferencia de sintaxis (obviamente), sino los usos prácticos y qué enfoque se beneficia más en diferentes escenarios. Además, ¿hay una mejora en el rendimiento al elegir uno sobre el otro? Y si es así, ¿por qué?

gdyrrahitis avatar Aug 25 '16 17:08 gdyrrahitis
Aceptado

Funciones de formularios basados ​​en plantillas:"

  • Fácil de usar
  • Adecuado para escenarios simples y falla para escenarios complejos.
  • Similar a AngularJS
  • Enlace de datos bidireccional (usando [(NgModel)]sintaxis)
  • Código de componente mínimo
  • Seguimiento automático del formulario y sus datos (manejado por Angular)
  • Las pruebas unitarias son otro desafío

Características de los formularios reactivos:

  • Más flexible, pero necesita mucha práctica.
  • Maneja cualquier escenario complejo
  • No se realiza ningún enlace de datos (el modelo de datos inmutable es el preferido por la mayoría de los desarrolladores)
  • Más código de componente y menos marcado HTML
  • Se pueden hacer posibles transformaciones reactivas como:
    • Manejo de un evento basado en un tiempo de rebote
    • Manejo de eventos cuando los componentes son distintos hasta que se cambian
    • Agregar elementos dinámicamente
  • Pruebas unitarias más sencillas
Aravind avatar Jan 16 '2017 21:01 Aravind

Aquí está el resumen de la comparación entre formularios reactivos y impulsados ​​por plantillas explicado por DeborahK (Deborah Kurata). ingrese la descripción de la imagen aquí

Sajeetharan avatar Jul 20 '2018 04:07 Sajeetharan

Creo que es una discusión sobre código , estrategia y experiencia de usuario .

En resumen, cambiamos del enfoque basado en plantillas , con el que es más fácil trabajar , a reactivo (en el enfoque basado en modelos) para brindarnos más control , lo que resulta en una forma mejor 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 manejo de escenarios complejos como reglas de validación en tiempo de ejecución y duplicación de campos dinámicos.

Este artículo es una buena referencia al respecto: Angular 2 Forms: enfoques basados ​​en plantillas y basados ​​en modelos

Richard Lee avatar Mar 09 '2017 17:03 Richard Lee