我有一个专用于容纳Angular应用程序所有管道的模块。
仅导出管道的模块示例。
@NgModule({
imports: [
CommonModule
],
declarations: [
FromNowPipe,
ToNowPipe,
ShortAgoPipe,
SuffixPeriodPipe
],
providers: [
FromNowPipe,
ToNowPipe,
ShortAgoPipe,
SuffixPeriodPipe
],
exports: [
FromNowPipe,
ToNowPipe,
ShortAgoPipe,
SuffixPeriodPipe
]
})
export class PipesModule {
}
我一直在想,一个容纳我所有管道的模块是否会破坏树木的摇动。从未使用过的管道仍将被添加到最终捆绑中。
我问的原因是管道不是组件。因此,AOT编译器可能不会像对组件和指令那样跟踪它们的使用情况。
我应该将管道分解成较小的模块,然后仅在知道需要它们时才导入模块吗?
答案 0 :(得分:1)
与任何其他 Angular 组件/指令一样,Pipes 也会发生相同的摇树机制。
这听起来对延迟加载性能更重要。
看看 Ng Material 如何管理组件,每个组件有一个模块。
总而言之,我建议您将 Pipes 拆分为单独的模块或小组。