例如,为了避免在模板的 *ngIf中写入逻辑。<div *ngIf="a === 3 && b === 'foo'"></div>
我通常创建一个特别的方法,例如。
public isOk(): boolean {
return a === 3 && b === 'foo'
}
前面的代码变成:<div *ngIf="isOk()"></div>
这是一个好的做法吗?
使用方法是正确的,还是使用getter更好?
为什么我们要使用一个或另一个?
赞成?反对?
因此,如果使用getter,它将变为:
public get isOk(): boolean {
return a === 3 && b === 'foo'
}
前面的代码变成:<div *ngIf="isOk"></div>
2条答案
按热度按时间kdfy810k1#
更好的方法是在组件类中创建附加属性。
组件类别:
在组件模板中:
换句话说,每次触发Angular 变化检测时,都会触发getter或方法。
wwwo4jvm2#
为了获得最佳性能,应该将rxjs和
| async
管道结合使用。例如,现在你有following application:
其结果如下:
请注意,每次更改时,函数都会运行多次。当我们只是聚焦其中一个文本框时,函数甚至会运行两次。
如果我们使用Observables,我们得到the following:
这样做的结果是:
请注意,rxjs
map
函数仅在其中一个输入发生变化时运行,不超过必要的程度。此外,我们现在可以将ChangeDetection策略修改为
OnPush
: