我在其他组件中有一个mat-menu(由角材料制成)。在mat-menu中选择一个选项时,我将选定的值发射到其他组件,接收到发射值的组件将该值绑定到管道的参数。管道方法使用lodash的深层副本。我在菜单内的选项之间切换时,mat-menu冻结,并且UI缓慢。我还尝试了JSON.parse(JSON.stringify())进行深层复制。我的数据是嵌套的(四个级别)。迟钝的原因是什么?
答案 0 :(得分:0)
角材料Mat-Menu
触发多重变化检测。即使在悬停时也会触发更改检测。当您执行四次多级链接时。您正在使用四个*ngFor
来创建级联的更改检测。
您可以通过添加trackBy
来进行验证。
临时解决方案是将每个对象分成不同的部分,并使用OnPush
Changedetection
分层策略。
永久性解决方案是修复角材料mat-menu
组件中的变化检测。
使用TrackBy
和onPush
ChangeDetection
,可以提高性能。