Angular 显示和隐藏组件,而不是销毁和重新创建组件

Angular 显示和隐藏组件,而不是销毁和重新创建组件,angular,performance,Angular,Performance,我有一个多步骤的表格。我有6-7个步骤,现在我已经设计了系统,就像每个步骤都是一个组件一样。当用户切换到下一步时,上一步组件被销毁,新的步骤组件被初始化。所以我总共有6-7个组件。显示和隐藏组件更好,销毁和重新创建组件更好。如果需要,可以使用: 控制台。时间() console.profile() 性能。现在() 计算性能并比较两种解决方案 您将发现以下使用示例: 可能会破坏并创建 Angular在实例化新组件/组件内容时访问shadow dom,这对性能的负担要小得多: shadowd

我有一个多步骤的表格。我有6-7个步骤,现在我已经设计了系统,就像每个步骤都是一个组件一样。当用户切换到下一步时,上一步组件被销毁,新的步骤组件被初始化。所以我总共有6-7个组件。显示和隐藏组件更好,销毁和重新创建组件更好。

如果需要,可以使用:

  • 控制台。时间()
  • console.profile()
  • 性能。现在()
计算性能并比较两种解决方案

您将发现以下使用示例:


可能会破坏并创建

Angular在实例化新组件/组件内容时访问shadow dom,这对性能的负担要小得多:

shadowdom是指浏览器能够将DOM元素的子树包含到文档的呈现中,而不是包含到主文档DOM树中。。。。。。对DOM的更改通常会导致重新呈现页面

此外,如果您只显示和隐藏,那么您将错过angular框架为您提供的关于屏幕上组件“显示/渲染”的所有方便的生命周期挂钩
ngOnInit
ngAfterViewInit



还需要进一步注意的是,通过css隐藏/显示元素不会操纵DOM,我推荐的主要原因是为了使用生命周期挂钩,并且在删除影子DOM内容时,从性能角度看,这会减轻负担。

首先,解释一下“更好”的概念是什么我已经解释了我是如何实现和替换的,以便进行比较。