Проверяет понимание Angular Forms, их назначения и различий между Template-driven и Reactive Forms.
Angular Forms — это встроенный механизм для работы с пользовательским вводом, валидацией и отправкой данных. Они позволяют связывать HTML-формы с моделью данных в компоненте, обрабатывать события и проверять корректность введенных значений.
В Angular существует два основных способа работы с формами: Template-driven Forms и Reactive Forms. Выбор зависит от сложности формы и предпочтений разработчика.
Этот подход основан на директивах в шаблоне, таких как ngModel. Форма создается прямо в HTML, а Angular автоматически связывает поля с моделью. Подходит для простых форм с минимальной логикой.
// app.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
template: `
<form #myForm="ngForm" (ngSubmit)="onSubmit(myForm.value)">
<input name="name" ngModel required>
<button type="submit">Submit</button>
</form>
`
})
export class AppComponent {
onSubmit(value: any) {
console.log(value);
}
}Этот подход использует модель данных, созданную в компоненте с помощью FormControl, FormGroup и FormArray. Форма строится программно, что дает больше гибкости для сложной валидации и динамических полей.
// app.component.ts
import { Component } from '@angular/core';
import { FormGroup, FormControl, Validators } from '@angular/forms';
@Component({
selector: 'app-root',
template: `
<form [formGroup]="myForm" (ngSubmit)="onSubmit()">
<input formControlName="name">
<button type="submit">Submit</button>
</form>
`
})
export class AppComponent {
myForm = new FormGroup({
name: new FormControl('', Validators.required)
});
onSubmit() {
console.log(this.myForm.value);
}
}Вывод: Reactive Forms предпочтительнее для масштабируемых приложений, так как они более предсказуемы и легче тестируются. Template-driven Forms удобны для быстрых прототипов и простых сценариев.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию