什么是入口组件?
Angular 中通过组件选择器加载的组件不是入口组件。大多数应用组件都是声明式加载的,Angular 使用该组件的选择器在模板中定位元素,然后创建表现该组件的 HTML,并把它插入 DOM 中所选元素的内部。它们不是入口组件。
用于引导的根 AppComponent
就是一个入口组件。虽然它的选择器匹配了 index.html
中的一个元素,但是 index.html
并不是组件模板,而且 AppComponent
选择器也不会在任何组件模板中出现。
Angular 总是会动态加载 AppComponent
—— 无论把它的类型列在了 @NgModule.bootstrap
函数中,还是命令式的调用该模块的 ngDoBootstrap
方法来引导它。
在路由定义中用到的组件也同样是入口组件。 路由定义根据类型来引用组件。 路由器会忽略路由组件的选择器 (即使它有选择器),并且把该组件动态加载到 RouterOutlet
元素中。
编译器无法通过在其它组件的模板中查找来发现这些入口组件。 我们必须通过把它们加入 entryComponents
列表中来让编译器知道它们的存在。
Angular 会自动把下列类型的组件添加到模块的 entryComponents
中:
- 那些出现在
@NgModule.bootstrap
列表中的组件。 - 那些被路由定义引用的组件。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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