首页 > 解决方案 > Portal、ViewContainerRef 和 ngComponentOutlet 有什么区别?

问题描述

Portal、ViewContainerRef 和 ngComponentOutlet 有什么区别?对于动态组件加载,我们什么时候使用这些方法?

我一直在使用此链接中概述的方法;https://angular.io/guide/dynamic-component-loader

但是我遇到了似乎使用相同方法和 NgComponentOutlet 的 CDK 门户。

我如何决定使用哪一个?

门户https://material.angular.io/cdk/portal/overview

标签: angularangular-cdk

解决方案


Portals 是 CDK 级别的组件解析器的抽象,它是 Angular 的外部库。顾名思义,它采用了更多的 UI 方法。您选择的组件的门户。

ViewComponentRef 实际上是单个组件的视图,您可以将其注入并解析您自己的组件。因此,portal 和 ng 组件出口都在引擎盖下使用。最好的一点是,您可以在您的编辑中自动获取组件的实例。

NgComponentOutlet 是一个类似于 NgTemplateOutlet 的抽象,它基本上解析了你附加到它的任何类型。或多或少是组件解析器工厂的 HTML 方法。

基本上,UI 指令省去了编译和解析组件的需要,但控制较少。


推荐阅读