2017-04-12 83 views
28

使用新的Angular-Material版本,您需要为Angular-Animations添加模块。您可以在两个BrowserAnimationsModule和NoopAnimationsModule之间进行选择。该official guide状态:BrowserAnimationsModule和NoopAnimationsModule有什么区别?

某些材料成分取决于角动画模块上 为了能够做更高级的过渡。如果您希望这些 动画在您的应用中运行,您必须安装 @角度/动画模块,并在您的应用中包含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 { } 

我不太得到什么是这里的区别。似乎完全一样:)这两个模块有什么区别?

回答

49

由于名称noop(“无操作”)说,该模块不会做任何事情。它是一个模拟真实动画模块的实用程序模块,但实际上并不动画。

在动画太慢的平台上,或者对于单元测试,如果动画没有涉及到你真正想要测试的内容,这可能很方便。

+3

短而简单... –

+0

@GünterZöchbauer。使用NoopAnimationsModule而不是BrowserAnimationsModule,我可以在应用程序中保存一些KB,还是提高性能? –

+0

如果你的组件不使用动画,那么可能不会。 –

6

BROWSER_ANIMATIONS_PROVIDERS用于实际应用

独立提供商实际模块,使我们可以在Google3做一个本地 修改,包括他们在BrowserModule。

BROWSER_NOOP_ANIMATIONS_PROVIDERS用于从实际的模块测试

独立供应商,使我们可以在Google3做一个本地 修改,包括他们在BrowserTestingModule。