2017-04-12 28 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。