Skip to main content
Практика завдань

Різниця між формами, керованими шаблоном, та реактивними формами в Angular

Що таке форми в Angular?

В Angular існує два підходи до створення форм:

  1. Форми на основі шаблонів — форми, побудовані на основі шаблонів (HTML).
  2. Реактивні форми — форми, які керуються з коду TypeScript.

Таблиця порівняння

ХарактеристикаФорми на основі шаблонівРеактивні форми
ОсновиHTML шаблонКод TypeScript
МодульFormsModuleReactiveFormsModule
УправлінняДекларативне (через шаблон)Імперативне (через код)
ПідхідЛегкий, декларативнийГнучкий, програмний
ВалідаціяЧерез HTML атрибути + директивиЧерез API та методи
ТестуванняБільш складнеЛегше
Підходить дляПростих формСкладних/динамічних форм

Приклад форми на основі шаблонів

html
<form #userForm="ngForm" (ngSubmit)="onSubmit(userForm)"> <input name="username" ngModel required /> <input name="email" ngModel email /> <button type="submit">Відправити</button> </form>
typescript
onSubmit(form: NgForm) { console.log(form.value); }
  • Використовує ngModel для зв'язування даних.
  • Директиви (required, email) для валідації.
  • Логіка в шаблоні.

Приклад реактивної форми

typescript
import { FormGroup, FormControl, Validators } from '@angular/forms'; form = new FormGroup({ username: new FormControl('', Validators.required), email: new FormControl('', [Validators.required, Validators.email]) }); onSubmit() { console.log(this.form.value); }
html
<form [formGroup]="form" (ngSubmit)="onSubmit()"> <input formControlName="username" /> <input formControlName="email" /> <button type="submit">Відправити</button> </form>
  • Управління повністю в коді TS.
  • Валідація задається в FormControl через Validators.
  • Краще підходить для складних сценаріїв.

Коли використовувати?

СценарійРекомендований підхід
Проста форма входуTemplate-driven
Складна динамічна форма з логікою та валідацієюReactive
Потреба в масштабуванні та тестуванніReactive
Швидка та проста реалізація формиTemplate-driven

Важливо: Обидва підходи можна комбінувати, але краще вибрати один і дотримуватися його протягом проекту для узгодженості.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.

Дочитали статтю?
Практика завдань