1

我有一个 Material 模块,其中包含 Angular Material 组件的导入/导出。

import { NgModule } from '@angular/core';
import {
  MdToolbarModule,
  MdIconModule,
  MdSidenavModule,
} from '@angular/material';

@NgModule({
  imports: [
    MdToolbarModule,
    MdIconModule,
    MdSidenavModule,
  ],

  exports: [
    MdToolbarModule,
    MdIconModule,
    MdSidenavModule,
  ],
})

export class MaterialModule {}

我在 SharedModule 中导入和导出 MaterialModule。

import { NgModule } from '@angular/core';

// Modules
import { MaterialModule } from './material.module';

@NgModule({
  imports: [
    MaterialModule,
  ],
  declarations: [
    // components
  ],
  exports: [
    MaterialModule,

    // components
  ],
  providers: [
    // utils
  ]
})
export class SharedModule {}

例如,我导入 SharedModule 来使用它的组件,这样我就不必在我创建的每个使用 Angular Material 的模块中一遍又一遍地导入 Angular Material 组件。我将 SharedModule 导入到 ExampleModule,但 ExampleModule 仅使用 MaterialModule 中的 MdIconModule。假设这是整个大型应用程序中的常见做法。它会影响开发模式和生产模式(AOT 构建)的性能吗?

4

1 回答 1

0

我认为您的设置很好,并且完全遵循 Angular 文档的建议。您还可以在生产中构建时探索您的捆绑包大小以仔细检查。

我相信在即将到来的 Ivy 编译器中,我们甚至会在 tree shaking 方面做得更好。

于 2018-05-18T08:51:04.957 回答