62 votes

Quelle est la différence entre BrowserAnimationsModule et NoopAnimationsModule ?

Avec la nouvelle version d'Angular-Material, vous devez ajouter un module pour Angular-Animations. Vous pouvez choisir entre deux modules : BrowserAnimationsModule et NoopAnimationsModule. Le site guide officiel États :

Certains composants Material dépendent du module d'animations Angular afin de pouvoir afin de pouvoir effectuer des transitions plus avancées. Si vous souhaitez que ces animations fonctionnent dans votre application, vous devez installer le module @angular/animations et inclure le module BrowserAnimations dans votre application. @angular/animations module et inclure le BrowserAnimationsModule dans votre application.

npm install --save @angular/animations
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';

@NgModule({
  ...
  imports: [BrowserAnimationsModule],
  ...
})
export class PizzaPartyAppModule { }

Si vous ne voulez pas ajouter une autre dépendance à votre projet, vous pouvez utiliser le NoopAnimationsModule.

import {NoopAnimationsModule} from '@angular/platform-browser/animations';

@NgModule({
  ...
  imports: [NoopAnimationsModule],
  ...
})
export class PizzaPartyAppModule { }

Je ne comprends pas bien quelle est la différence ici. Il semble que ce soit exactement la même chose :) Quelle est la différence entre les deux modules ?

121voto

Günter Zöchbauer Points 21340

Comme le nom noop ("no operation") indique que ce module ne fait rien. C'est un module utilitaire qui simule le module d'animation réel, mais qui n'anime pas réellement.

Cela peut être pratique sur les plateformes où l'animation serait trop lente, ou pour les tests unitaires, si l'animation n'est pas impliquée dans ce que vous voulez réellement tester.

0 votes

@Günter Zöchbauer. En utilisant NoopAnimationsModule au lieu de BrowserAnimationsModule, est-ce que j'économise quelques Ko sur mon application, ou est-ce que j'augmente les performances ?

0 votes

Si vos composants n'utilisent pas d'animations, alors probablement pas.

16voto

yurzui Points 85802

BROWSER_ANIMATIONS_PROVIDERS est utilisé pour une application réelle

Séparer les fournisseurs du module actuel afin de pouvoir faire une modification locale. dans Google3 pour les inclure dans le BrowserModule.

BROWSER_NOOP_ANIMATIONS_PROVIDERS est utilisé pour tester

Séparer les fournisseurs du module actuel afin de pouvoir effectuer une modification dans Google3 pour les inclure dans le BrowserTestingModule.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X