Soy nuevo en Angular. Encontré el código con tres variantes. Quiero saber qué diferencia hace que estos tres se implementen en los formularios reactivos (grupo de formularios, generador de formularios y control de formularios).
¿Hay alguna prioridad basada en el rendimiento de la aplicación de una sobre la otra forma de hacerlo o es solo una preferencia?
addressFormControl = new FormControl(undefined, [ Validators.required, Validators.address, ]); export class BusinessComponent { BusinessForm = new FormGroup({ email: this.emailFormControl, firstName: new FormControl(''), lastName: new FormControl(''), address: new FormGroup({ street: new FormControl(''), city: new FormControl(''), state: new FormControl(''), zip: new FormControl('') }) }); } export class BusinessComponent { constructor(private fb: FormBuilder) { } businessForm = this.fb.group({ business: this.businessFormControl, firstName: [''], lastName: [''], address: this.fb.group({ street: [''], city: [''], state: [''], zip: [''] }), }); }Bueno, no hay ninguna ventaja técnica y cualquiera que sea el código que use, todo se reduce a su preferencia.
Los documentos oficiales lo describen como:
La creación manual de instancias de control de formularios puede volverse repetitiva cuando se trata de múltiples formularios. El servicio FormBuilder proporciona métodos convenientes para generar controles.
Básicamente, digo que FormBuilder es un servicio que intenta ayudarnos a reducir el código repetitivo.
Depende de usted qué enfoque elegir.
Tomemos un ejemplo. Puede usarlo cuando los siguientes casos de uso están ahí
formControl: cuando tiene muy pocos (tal vez uno o dos) campos independientes en el diseño de su interfaz de usuario, tal vez una entrada. Por lo tanto, no hay necesidad de una etiqueta de formulario.
formGroup: cuando tiene un formulario que tiene múltiples entradas, menú desplegable, botones de opción. Todo lo cual desea crear un objeto JSON para pasar la API.
formBuilder: Cuando tienes un formulario dinámico. por ejemplo, hay entradas en la barra de direcciones. Los usuarios pueden agregar tantas barras de entrada como deseen haciendo clic en el botón 'Agregar nueva línea'. Ese tiempo puede utilizar la creación de controles de formulario dinámicos.
Todos ellos le dan la opción de crear semánticamente un grupo, de lo contrario, todo esto también se puede lograr solo con formControl.
Espero que pueda relacionarse con estos casos de uso