我有一个关于 Angular 性能的问题。
引用公共属性和组件中定义的 getter 之间是否存在性能差异?
Example:
我有一个模板,它引用了isActivate
在组件中定义如下:
<div *ngIf="isActivate">Do stuff...</div>
在组件中:
export class TestComponent {
public isActivate: boolean;
但它可以有一个 getter 来代替:
public get isActivate(): boolean {
return true;
}
在性能方面,哪个更好,为什么?
在每次变化检测时,Angular 都会比较之前和当前的边界值。 getter(即函数)与属性访问之间的性能差异毫无意义function
没做什么。如果我们想优化它 -memoize该函数通过使用纯管.
另一个更通用的解决方案是创建apply
pipe:
@Pipe({
name: 'apply',
})
export class ApplyPipe implements PipeTransform {
transform<T, U extends any[]>(fn: (...fnArgs: U) => T, ...args: U): T {
return fn(...args);
}
}
// TS
foo = {};
computeSmth(foo){
// some computation
return 'result';
}
// HTML
{{ computeSmth | apply : foo}}
PS我们还可以使用装饰器来记忆getter函数
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)