我对Angular的性能有疑问。 引用公共属性和在组件中定义的吸气剂之间在性能上有区别吗?
示例:
我有一个模板,它引用在这样的组件中定义的isActivate
:
<div *ngIf="isActivate">Do stuff...</div>
在组件中:
export class TestComponent {
public isActivate: boolean;
但是它可以有一个吸气剂:
public get isActivate(): boolean {
return true;
}
在性能方面,哪个更好,为什么?
答案 0 :(得分:0)
在每个“变化检测”角度上,比较先前和当前的边界值。在function
不执行任何操作之前,getter(即函数)与属性访问之间的性能差异不存在。如果我们要优化它-通过使用memoize pure pipe函数。
另一种更通用的解决方案是创建apply
管道:
@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,我们也可以使用装饰器来记住吸气剂功能