Performance: ngModel for form binding
MEDIUM IMPACT
This affects the interaction responsiveness and rendering speed when binding form inputs to component data.
import { Component, signal } from '@angular/core'; @Component({ selector: 'app-good-form', standalone: true, template: `<input [value]="name()" (input)="name.set($any($event.target).value)">` }) export class GoodFormComponent { name = signal(''); }
import { Component } from '@angular/core'; @Component({ selector: 'app-bad-form', template: `<input [(ngModel)]="name">` }) export class BadFormComponent { name = ''; }
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| ngModel two-way binding on many inputs | High (many bindings) | Multiple per keystroke | High due to frequent updates | [X] Bad |
| One-way binding with signals and event handlers | Low (controlled updates) | Single per input event | Lower paint cost | [OK] Good |