В чем разница между [ngSwitch] и кучей *ngIf. Какие факторы производительности нас должны беспокоить?
* ngIf
<div *ngIf = "day === 'MONDAY'">
Keep calm and pretend it's not Monday.
</div>
...
<div *ngIf = "day === 'FRIDAY'">
Happy Friday!
</div>
[ngSwitch]
<ng-container [ngSwitch] = "day">
<div *ngSwitchCase = "'MONDAY'">
Keep calm and pretend it's not Monday.
</div>
...
<div *ngSwitchCase = "'FRIDAY'">
Happy Friday!
</div>
</ng-container>
аналогично с использованием angular js - stackoverflow.com/questions/16741949/…





ngIf - это, по сути, версия ngSwitch с одним условием. Он отличается от ngShow тем, что удаляет фактический элемент DOM, а не просто скрывает его. Если вы используете ngSwitch с проверкой только одного истинного условия, то я считаю, что ngIf будет делать то же самое.
* ngIf работает так же, как оператор if и ngSwitch (фактически состоящий из двух директив, директивы атрибутов и структурной директивы) работают как оператор switch в DOM.
Знание разницы между оператором if-else и вариантами переключения поможет вам понять дальнейшее, https://techdifferences.com/difference-between-if-else-and-switch.html
Для *ngIf каждое условие будет проверено, и код внутри условия true будет выполнен.
Для [ngSwitch] будет выполняться только код внутри конкретного случая (с использованием break;).
Таким образом, [ngSwitch] будет быстрее там, где есть несколько случаев.