【发布时间】:2022-12-14 11:41:08
【问题描述】:
我正在使用最新的角度,最近对模板条件和性能有一些疑问。我知道在模板中调用方法是不好的做法,它在每个更改检测周期都会被调用,但我不确定其他 2 个解决方案。
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;
}
我们讨论的最佳选择是什么:
a) 可读性.我猜 1 是赢家。
b) 性能我很好奇 2 和 3 之间。angular 是否有一些像纯管道中的缓存机制,并且不会每次都在模板中计算条件,或者 2 和 3 是相同的?
c) 架构我知道 2 是不好的做法。由于我们在组件模板中使用表达式,所以 3 是否被视为不良做法?
【问题讨论】:
标签: javascript angular