【问题标题】:Angular 5 best way to to show components based on configurationAngular 5 基于配置显示组件的最佳方式
【发布时间】:2018-05-30 09:29:30
【问题描述】:

在我的应用程序中,我有仪表板组件。在仪表板组件 OnInit 中,我调用了一个服务,该服务返回一个包含 3 个可能用例的配置。

基本上答案是这样的:

{
  "usecase": "usecase1" // "usecase2" or "usecase3"
}

对于每个用例,整个仪表板内容不会相同。

每个用例都有 3 个组件:useCase1Component、useCase2Component、useCase3Component

我想知道根据用例显示/渲染正确组件的最佳方式。

我可以在dashboardComponent html中像这样使用*ngIf来做到这一点:

<useCase1Component *ngIf="showUseCase1"></useCase1Component>
<useCase2Component *ngIf="showUseCase2"></useCase2Component>
<useCase3Component *ngIf="showUseCase3"></useCase3Component>

但我不确定这是不是最好的方法,而且我不知道如何以另一种方式实现这一目标并具有良好的性能。

【问题讨论】:

  • Dynamic components 就是为此而生的。 RTFM !
  • 使用动态组件加载并不总是最好的方法,在特定情况下它根本不起作用。例如必须将指令应用于组件。在你的情况下,我会使用 *ngIf 或 *ngSwitch。
  • 正是@Chrillewoodz,我已经看到了动态组件,但我不相信它在我的场景中运行良好。此外,ngIf/ngSwitch 可以工作,但就实践和性能而言,这是最好的方法吗?
  • @ImadElHitti Ye,使用它完全没问题。我也在使用它,我的场景比你的要大得多,相信我。我有大量的配置,可能是无穷无尽的,所以我基于这个解决方案递归地渲染组件。我什至不得不从动态组件方式切换,因为它不允许我做我需要的事情。
  • 好的先生,谢谢。

标签: angular components


【解决方案1】:

您可以使用 *ngIf。那是Angulars 显示或隐藏项目的方式。性能卓越,您无需担心。

【讨论】:

    猜你喜欢
    • 2018-04-19
    • 1970-01-01
    • 1970-01-01
    • 2011-12-25
    • 1970-01-01
    • 2015-06-29
    • 1970-01-01
    • 2020-11-30
    • 2019-03-10
    相关资源
    最近更新 更多