web-dev-qa-db-ja.com

BrowserAnimationsModuleとNoopAnimationsModuleの違いは何ですか?

新しいAngular-Materialリリースでは、Angular-Animations用のモジュールを追加する必要があります。 2つのBrowserAnimationsModuleとNoopAnimationsModuleから選択できます。 公式ガイド 状態:

一部のマテリアルコンポーネントは、Angularアニメーションモジュールに依存して、より高度な遷移を行うことができます。これらのアニメーションをアプリで機能させるには、@ angular/animationsモジュールをインストールし、Br​​owserAnimationsModuleをアプリに含める必要があります。

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

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

プロジェクトに別の依存関係を追加したくない場合は、NoopAnimationsModuleを使用できます。

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

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

ここで何が違うのかよくわかりません。まったく同じようです:) 2つのモジュールの違いは何ですか?

49
OddDev

名前noop(「操作なし」)が示すように、そのモジュールは何もしません。これは、実際のアニメーションモジュールをモックするユーティリティモジュールですが、実際にはアニメーション化しません。

これは、アニメーションが遅すぎるプラットフォームや、実際にテストしたいものにアニメーションが関与していない場合の単体テストに便利です。

92

BROWSER_ANIMATIONS_PROVIDERSは実際のアプリケーションに使用されます

実際のモジュールからプロバイダーを分離して、Google3でローカルの変更を行ってそれらをBrowserModuleに含めることができるようにします。

BROWSER_NOOP_ANIMATIONS_PROVIDERSはテストに使用されます

実際のモジュールからプロバイダーを分離して、Google3でローカル変更を行ってそれらをBrowserTestingModuleに含めることができるようにします。

12
yurzui