Performance: *ngSwitch for multiple conditions
MEDIUM IMPACT
This affects rendering speed and visual stability by controlling which elements are added or removed from the DOM based on multiple conditions.
<div [ngSwitch]="condition"> <div *ngSwitchCase="'condition1'">Block 1</div> <div *ngSwitchCase="'condition2'">Block 2</div> <div *ngSwitchCase="'condition3'">Block 3</div> <div *ngSwitchDefault>Default Block</div> </div>
<div *ngIf="condition1">Block 1</div> <div *ngIf="condition2">Block 2</div> <div *ngIf="condition3">Block 3</div>
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Multiple *ngIf for each condition | Multiple nodes created/destroyed independently | Multiple reflows per condition change | Higher paint cost due to layout shifts | [X] Bad |
| Single *ngSwitch with cases | Only one node subtree created/destroyed | Single reflow per switch change | Lower paint cost with stable layout | [OK] Good |