[angular] Angular 폼 리액티브 폼 전환
Angular 애플리케이션을 개발하다보면 템플릿 기반 폼으로 시작하여 나중에 리액티브 폼으로 전환해야 하는 경우가 종종 있습니다. 이 기사에서는 Angular 애플리케이션의 폼을 템플릿 기반에서 리액티브 폼으로 전환하는 방법에 대해 알아보겠습니다.
템플릿 기반 폼 vs. 리액티브 폼
템플릿 기반 폼은 폼 요소를 HTML 템플릿과 바인딩하여 사용자 입력을 처리합니다. 반면에, 리액티브 폼은 폼 모델을 컴포넌트 클래스에 정의하고, 이를 HTML 템플릿과 바인딩하여 폼 상태 및 입력 값을 처리합니다. 리액티브 폼은 복잡한 폼 및 유효성 검사를 수행하기에 훨씬 유용합니다.
템플릿 기반 폼에서 리액티브 폼으로 전환하기
기존 템플릿 기반의 폼을 리액티브 폼으로 전환하려면 다음 단계를 따르면 됩니다.
-
폼 모델 정의:
FormGroup
및FormControl
을 사용하여 컴포넌트 클래스에 폼 모델을 정의합니다.import { Component } from '@angular/core'; import { FormControl, FormGroup } from '@angular/forms'; @Component({ selector: 'app-form', templateUrl: './form.component.html', styleUrls: ['./form.component.css'] }) export class FormComponent { form = new FormGroup({ username: new FormControl(''), password: new FormControl('') }); }
-
템플릿 변경: HTML 템플릿에서
formGroup
및formControlName
디렉티브를 사용하여 폼 요소를 수정합니다.<form [formGroup]="form" (ngSubmit)="onSubmit()"> <input type="text" formControlName="username"> <input type="password" formControlName="password"> <button type="submit">Submit</button> </form>
-
폼 유효성 검사 추가: 추가적인 유효성 검사 및 사용자 정의 유효성 검사를 구현할 수 있습니다.
export class FormComponent { form = new FormGroup({ username: new FormControl('', Validators.required), password: new FormControl('', Validators.minLength(6)) }); }
이제 Angular 애플리케이션에서 템플릿 기반 폼을 리액티브 폼으로 성공적으로 전환했습니다. 리액티브 폼을 사용하면 더 많은 유연성과 제어권을 얻게 됩니다.
이상으로 Angular 폼을 템플릿 기반에서 리액티브 폼으로 전환하는 방법에 대해 알아보았습니다. 감사합니다.