Angular2 +中bootstrap和entryComponent之间的区别

时间:2018-09-07 06:26:52

标签: angular

我正在学习Angular,遇到了一个场景,其中一个模块组件在引导中​​声明,而另一些组件在@Ngmodule元数据的entryComponent数组中列出。 请帮助我理解这个概念。

非常感谢您的帮助。

谢谢!!!

2 个答案:

答案 0 :(得分:3)

bootstrap用于自举组件,这主要意味着自举组件是应用程序的入口点(例如AppComponent)。

entryComponents是可以通过ComponentFactoryResolver动态加载的组件。如果它们不在入口组件中,则加载它们将引发错误。

答案 1 :(得分:3)

直接从documentation

  

输入组件是按类型Angular强制性加载的任何组件(这意味着您没有在模板中引用它)。您可以通过将入口组件引导到NgModule中或将其包含在路由定义中来指定入口组件。

因此,这意味着您在引导数组中或在路由中定义的任何组件都将立即成为entryComponent。这是因为您没有在任何模板中引用它们。这样可以防止编译器将这些组件树出模块。

进一步:

  

自举组件是一个入口组件,在引导过程(应用程序启动)期间,Angular会将其加载到DOM中。其他入口组件通过其他方式动态加载,例如通过路由器。

尽管这两种机制都是大多数输入组件的原因,但是如果您的应用碰巧必须按类型自动引导或动态加载组件,则必须将其显式添加到entryComponents中。