Различия между * ngIf и [ngSwitch] в Angular 2+

В чем разница между [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/…

Tushar Walzade 02.01.2019 07:34
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
9
2
5 708
3

Ответы 3

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] будет быстрее там, где есть несколько случаев.

Другие вопросы по теме