7
votes

Différent entre * ngIf et [ngSwitch] dans Angular 2+

Quelles sont les différences entre [ngSwitch] et un groupe de * ngIf . Y a-t-il des facteurs de performance qui devraient nous préoccuper?

* ngIf

<ng-container [ngSwitch]="day">

     <div *ngSwitchCase="'MONDAY'">
         Keep calm and pretend it's not Monday.
     </div>
     ...
     <div *ngSwitchCase="'FRIDAY'">
         Happy Friday!
     </div>

</ng-container>

[ngSwitch]

  <div *ngIf="day === 'MONDAY'">
     Keep calm and pretend it's not Monday.
  </div>
  ...
  <div *ngIf="day === 'FRIDAY'">
     Happy Friday!
  </div>


3 Réponses :


2
votes

ngIf est essentiellement une version de ngSwitch avec une seule condition. Il est différent de ngShow en ce qu'il supprime l'élément DOM réel plutôt que de simplement le cacher. Si vous utilisez un ngSwitch avec une seule vérification de la condition de vérité, alors je pense que ngIf fera la même chose.


0 commentaires


4
votes

Pour * ngIf , chaque condition sera vérifiée et le code à l'intérieur de la condition true sera exécuté.

Pour [ngSwitch] , seul le code à l'intérieur du cas spécifique sera exécuté (en utilisant break; ).

Ainsi, [ngSwitch] sera plus rapide là où il y a plusieurs cas.


0 commentaires