Angular模板条件性能



我正在使用最新的angular,最近对模板条件和性能有一些疑问。我知道在模板中调用方法是不好的做法,它在每个更改检测周期都被调用,但我不确定其他两个解决方案。

1) <div *ngIf="isConditionsTrue"></div>
2) <div *ngIf="isConditionsTrueFunction()"></div>
3) <div *ngIf="condition1 || condition2 && !condition3"></div>

在ts文件中:

ngOnInit(): void {
this.isConditionsTrue = this.condition1 || this.condition2 && !this.condition3;
}
isConditionsTrueFunction(): boolean {
return this.condition1 || this.condition2 && !this.condition3;
}

我们讨论过的最好的选择是什么?

)可读性. 我想我是赢家。

<<p>b)性能/strong>我在2点到3点之间很好奇。angular是否有像纯管道那样的缓存机制,不会每次都在模板中计算条件,还是2和3是一样的? <<p>c)架构/strong>我知道2是不好的练习。如果我们在组件模板中使用了表达式,那么3是否被认为是不好的实践?

如果你使用ChangeDetection,我认为在模板中调用方法是可以的。OnPush

最新更新