Angular 在视图中使用简单的get方法是否成本高昂?

Angular 在视图中使用简单的get方法是否成本高昂?,angular,typescript,Angular,Typescript,假设用户的所有字段都是私有的,访问它们的唯一方法是调用方法。我们都知道Angular调用经常会更改检测,但我很好奇这种简单的方法是否像: @Component({ template: `Hello {{user.getName()}}`` }) class UserProfile { user: User = new User(); } 要多少钱?如果更改检测多次触发,那么所有这些方法调用都将添加到堆栈中。您的看法是什么?如果您只是从函数返回一个值,那么它的成本并不高。您还可以创建ge

假设用户的所有字段都是私有的,访问它们的唯一方法是调用方法。我们都知道Angular调用经常会更改检测,但我很好奇这种简单的方法是否像:

@Component({
  template: `Hello {{user.getName()}}``
})
class UserProfile {
  user: User = new User();
}

要多少钱?如果更改检测多次触发,那么所有这些方法调用都将添加到堆栈中。您的看法是什么?

如果您只是从函数返回一个值,那么它的成本并不高。您还可以创建getter以获得更好的语法:

getName(): string {
  return this.name;
}

但是,如果在该方法中进行一些计算,可能会降低渲染性能,但可以使用行为(纯管道表示记忆模式)进行优化(您可以使用已经创建的。

在视图中使用方法或getter会对性能造成更大的影响。将数据存储在变量中是一种很好的做法,因为对于视图绑定,应该避免昂贵的计算,因为由于检测到更改,可以经常调用方法或getter。 因此,最好将结果存储在一个字段中,并绑定到该字段


绑定到字段比在绑定中使用getter和方法更有效。

虽然我不知道最好的方法,但确实很昂贵,请尝试使用该方法的console,它会一次又一次地记录日志。我昨天读了一篇关于这一点的文章,您可以快速查看:Angular需要检查值是否已更改为upda因此,当您使用方法时,angular需要在每个周期调用该方法以检查值是否已更新。因此,是的,您应该避免在插值中使用该方法
get userName() {
 return this.user.getName();
}