冻结的菜单菜单(角材料)

问题描述 投票:0回答:1

我在其他mat-menu中有一个component(来自角材料)。在mat-menu中选择一个选项时,我将选择的值发送给其他component,并且接收所发送值的component将该值绑定到pipe的自变量。 pipe方法使用lodash的深层副本。当我在菜单内的选项之间切换时,mat-menu被冻结,并且UI缓慢。我也尝试过JSON.parse(JSON.stringify())进行深度复制。我的数据是嵌套的(四个级别)。缓慢的原因可能是什么?

javascript angular typescript angular-material
1个回答
0
投票

[Angular Material Mat-Menu]触发多重更改检测。即使在悬停时也会触发更改检测。当您执行四次多级链接时。您正在使用四个*ngFor创建级联更改检测。

您可以通过添加trackBy进行验证。

临时解决方案是将每个都划分为不同的部分,并使用OnPush Changedetection战略。

永久解决方案是将更改检测固定在角材mat-menu组件中。

使用TrackByonPush ChangeDetection,您将获得一些性能提升。

© www.soinside.com 2019 - 2024. All rights reserved.