Performance: ngClass for dynamic classes
MEDIUM IMPACT
This affects rendering speed and visual stability by dynamically adding or removing CSS classes on elements.
<!-- Template --> <div [ngClass]="currentClass"></div> // Component currentClass = 'active highlight'; // Update currentClass string only when needed, minimizing changes
<!-- Template --> <div [ngClass]="{'active': isActive, 'highlight': isHighlighted}"></div> // Component isActive = true; isHighlighted = true; // In frequent change scenario, toggling both frequently
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Frequent toggling of multiple classes separately | Multiple class attribute updates | Multiple reflows per toggle | High paint cost due to layout shifts | [X] Bad |
| Batch updating classes as a single string | Single class attribute update | Single reflow per update | Lower paint cost with stable layout | [OK] Good |