【问题标题】:Should we use content Projection or just call the child component 'normally'?我们应该使用内容投影还是“正常”调用子组件?
【发布时间】:2021-10-08 12:44:33
【问题描述】:

在 Angular 中,我们可以通过两种方式从另一个组件调用组件。

第一种方式是内容投影。

应用组件 HTML

<app-parent>
   <app-child></app-child>
</app-parent>

父组件 HTML

<ng-content></ng-content>

第二种方式是在父组件中调用子组件。

应用组件 HTML

<app-parent>
</app-parent>

父组件 HTML

<app-child></app-child>

我想知道 - 这种方法有什么区别 - 优点和缺点。

我不知道我应该使用什么以及何时使用

【问题讨论】:

  • 我建议你,如果你想了解这个概念,请看这个视频youtu.be/b71prZA8sQ0希望它对你有用
  • 我理解这些概念。但我不知道在这种情况下我应该使用什么。有什么优点和缺点
  • 当你有动态组件并且你想要渲染它而不是你需要使用 ng-content
  • 如果我说你想在没有 ng-content 的情况下在你的子元素中呈现一些内容,它将无法工作

    heading>

  • 当您在组件中使用 ng-content 时,它将使用类选择器显示组件内部的内容

标签: angular angular-content-projection


【解决方案1】:

主要区别在于哪个组件控制子组件以及组件之间的耦合:

通过投影,AppComponent 负责 ParentComponent 的内容和 ChildComponent 的输入/输出,而在另一种方式中,ParentComponent 负责一切。第二种方式,对于AppComponent,ParentComponent可以看成一个黑盒子。

在大多数情况下,最好的方法是第二种方法,因为它减少了组件之间的耦合,从而降低了组件的复杂性。

当您确实需要自定义另一个组件内的内容(例如:表格中的单元格或模态框的标题)时,会使用内容投影。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-16
    • 1970-01-01
    • 2012-01-07
    • 2016-12-05
    相关资源
    最近更新 更多