有一個組件,其中子組件由 ngIf 條件激活。
撰寫了一個 getter 來檢查它抽搐了多少次:
{{test}}
<app-comp1 * ngIf = "one"> </app-comp1>
<app-comp2 * ngIf = "two"> </app-comp2>
吸氣劑:
get test () {
console.log ('1')
return '1'
}
切換選項卡時 - 更改一個、兩個變數 - 呼叫 getter 4 次。
可能是什么原因?該組件有changeDetection: ChangeDetectionStrategy.OnPush
uj5u.com熱心網友回復:
在 OnPush 中,有 3 種方式觸發變更檢測:
- 組件更改的 @Input(與 === 相比)
- 您在模板中使用 () 或在代碼中使用 @HostListener 訂閱的事件發生
- 手動觸發更改檢測(即使用 ChangeDetectorRef)
因此,在您的情況下,即使組件處于onPush策略之下,但該組件中發生事件,也會檢查更改
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/339582.html
標籤:有角的
