簡體   English   中英

如何檢查組件中使用了哪個changedetectionStrategy

[英]How to check which changedetectionStrategy is used in component

有沒有辦法找出組件實際使用了哪個changedetectionStrategy。 我有一個非常大的 angular 應用程序,它在外部組件上使用 onPush,所以一切都應該使用 onPush。

但是當在一些子組件上額外應用 onPush 時,性能會有所提高。

該屏幕截圖顯示了當鼠標以幾乎完全相同的時間和距離移動時的 changeCycles。

左:沒有額外的CD;右:額外的cd.onPush

您描述的性能提升是有道理的:外部組件具有 ChangeDetectionStrategy.OnPush,因此在 CD 周期中它們只會在某些情況下被檢查。 但如果選中它們,CD 也會對此類 OnPush 組件的所有子組件執行。 如果孩子們都有 ChangeDetectionStrategy.Default,他們所有人(以及他們的孩子、孫子……)都將被檢查是否有變化。 如果您將某些子項標記為 OnPush,則可能會在 CD 周期中跳過它們及其子項。

您可以在 AngularDevTools 中通過選擇火焰圖並選擇僅顯示在一個周期內檢查過的組件來可視化此過程:

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM