为什么 Angular 需要入口组件?
入口组件也是被声明的。为什么 Angular 编译器不为 @NgModule.declarations
中的每个组件都生成一份代码呢?那样就不需要入口组件了。
原因在于 tree shaking
。对于产品化的应用,我们希望加载尽可能小的代码。 代码中应该仅仅包括那些实际用到的类。 它应该排除那些我们从未用过的组件,无论该组件是否被声明过。
事实上,大多数库中声明和导出的组件我们都用不到。如果我们从未引用它们,那么 tree shaking
就会从最终的代码包中把这些组件砍掉。
如果 Angular 编译器为每个声明的组件都生成了代码,那么 tree shaking
的优化作用就没了。所以,编译器转而采用一种递归策略,它只为我们用到的那些组件生成代码。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

上一篇: CoreModule 有什么用?
下一篇: 引导组件和入口组件有什么不同?
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论