[英]*ngIf with compound conditionals performance
眾所周知,在* ngIf中調用函數可能會降低性能,因為它將在每個更改檢測周期中進行評估。 相反,建議使用原始值(數字,布爾值,..)或不可變值。
我的問題是* ngIf中的復合條件是否以相同方式處理。 我猜它也在每次更改檢測中執行,但是我想確認一下。
例如:
<div *ngFor="let item of items; trackBy: itemById">
<button *ngIf="item.showAction && otherComponentCondition">Next</button>
</div>
是的,將在每個變更檢測周期內對它們進行重新評估。 您可以通過使用get
函數作為屬性訪問器和控制台日志來證明這一點。
在表達式綁定中不調用函數的最佳實踐主要是因為函數往往更容易變得更復雜。
從性能角度來看,最好甚至不使用復合條件,而是使用專用變量,當一個復合變量發生變化時對其進行更改。 也就是說,作為附帶說明,反應式編程之所以在角度編程中如此受歡迎也是因為。
我在該示例中添加了一個簡單的Stackblitz 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.