BrowserAnimationsModule和NoopAnimationsModule之间的区别是什么?

时间:2017-04-12 07:20:18

标签: angular angular-material angular-animations

使用新的Angular-Material版本,您需要为Angular-Animations添加模块。您可以在两个BrowserAnimationsModule和NoopAnimationsModule之间进行选择。 official guide州:

  

某些Material组件依赖于Angular动画模块   为了能够进行更高级的过渡。如果你想要这些   要在您的应用中运行的动画,您必须安装   @ angular / animations模块并包含BrowserAnimationsModule   你的应用。

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 个答案:

答案 0 :(得分:90)

正如名称noop(“无操作”)所说,该模块没有做任何事情。它是一个实用程序模块,可以模拟真实的动画模块,但实际上并没有动画。

这对于动画速度太慢的平台或单元测试非常方便,如果动画不涉及您实际想要测试的内容。

答案 1 :(得分:12)

BROWSER_ANIMATIONS_PROVIDERS用于实际应用

  

将提供者与实际模块分开,以便我们可以进行本地化   在Google3中进行修改,将其包含在BrowserModule中。

BROWSER_NOOP_ANIMATIONS_PROVIDERS用于测试

  

将提供者与实际模块分开,以便我们可以进行本地化   在Google3中进行修改,将其包含在BrowserTestingModule中。