【问题标题】:What's the difference between BrowserAnimationsModule and NoopAnimationsModule?BrowserAnimationsModule 和 NoopAnimationsModule 有什么区别?
【发布时间】:2017-09-07 20:13:08
【问题描述】:

使用新的 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 { }

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

【问题讨论】:

    标签: angular angular-material angular-animations


    【解决方案1】:

    正如名称noop(“无操作”)所说,该模块不执行任何操作。它是一个模拟真实动画模块但实际上并不动画的实用模块。

    这在动画太慢的平台或测试(单元、集成、与赛普拉斯的 e2e、量角器等)的平台上很方便,如果动画不涉及您实际想要测试的内容。

    @NgModule({
      imports: [
        BrowserModule,
        environment.production ? BrowserAnimationsModule : NoopAnimationsModule,
        ...
       ]
       ...
    }
    export class AppModule {}
    

    【讨论】:

    • @Günter Zöchbauer。使用 NoopAnimationsModule 而不是 BrowserAnimationsModule,我是否可以在我的应用程序上节省一些 KB,或者提高性能?
    • 如果你的组件不使用动画,那么可能不会。
    【解决方案2】:

    BROWSER_ANIMATIONS_PROVIDERS用于实际应用

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

    BROWSER_NOOP_ANIMATIONS_PROVIDERS 用于测试

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

    【讨论】:

      猜你喜欢
      • 2023-03-20
      • 2022-06-19
      • 2010-10-02
      • 2011-12-12
      • 2010-09-16
      • 2012-03-14
      • 2012-02-06
      • 2011-02-25
      • 2011-11-22
      相关资源
      最近更新 更多