angular - Portal、ViewContainerRef 和 ngComponentOutlet 有什么区别?
问题描述
Portal、ViewContainerRef 和 ngComponentOutlet 有什么区别?对于动态组件加载,我们什么时候使用这些方法?
我一直在使用此链接中概述的方法;https://angular.io/guide/dynamic-component-loader
但是我遇到了似乎使用相同方法和 NgComponentOutlet 的 CDK 门户。
我如何决定使用哪一个?
解决方案
Portals 是 CDK 级别的组件解析器的抽象,它是 Angular 的外部库。顾名思义,它采用了更多的 UI 方法。您选择的组件的门户。
ViewComponentRef 实际上是单个组件的视图,您可以将其注入并解析您自己的组件。因此,portal 和 ng 组件出口都在引擎盖下使用。最好的一点是,您可以在您的编辑中自动获取组件的实例。
NgComponentOutlet 是一个类似于 NgTemplateOutlet 的抽象,它基本上解析了你附加到它的任何类型。或多或少是组件解析器工厂的 HTML 方法。
基本上,UI 指令省去了编译和解析组件的需要,但控制较少。
推荐阅读
- java - 尝试在tomcat 9中加载maven项目,显示A child container failed during start
- flutter - 在扑扑的 PlatformTextField 中找不到“验证器”和“提示文本”
- asp.net-core-mvc - SonarCloud .NET Core 覆盖范围非常严格。有什么办法可以改变这个吗?
- c - 打印阵列时出现程序终止错误
- python - 将 Django 安装到 Windows 8.1
- javascript - 映射对象数组并在某个位置显示另一个元素
- pandas - 将不同大小的列与熊猫进行比较
- typescript - 如何在 keyof 声明中指定值的类型?
- r - 时间序列横截面数据回归的面板校正标准误差
- java - 在迭代循环中使用字节是否更有效?