Angular 在处理NgRx时,为什么要使用Typescript Getter在模板上显示属性?

Angular 在处理NgRx时,为什么要使用Typescript Getter在模板上显示属性?,angular,typescript,ngrx,Angular,Typescript,Ngrx,在研究NgRx示例应用程序时,我注意到使用Typescript Getter在模板视图上显示属性值。下面是一个例子: <mat-card-title>{{ title | bcEllipsis:35 }}</mat-card-title> 为什么不直接使用gettile()方法,或者简单地调用对象属性,比如book.volumeInfo.title?在处理NgRx或Angular的一般情况下,get方法是现在更好的做法吗?在我看来,这只是干净的代码方法。模板中包含tit

在研究NgRx示例应用程序时,我注意到使用Typescript Getter在模板视图上显示属性值。下面是一个例子:

<mat-card-title>{{ title | bcEllipsis:35 }}</mat-card-title>

为什么不直接使用
gettile()
方法,或者简单地调用对象属性,比如
book.volumeInfo.title
?在处理NgRx或Angular的一般情况下,
get
方法是现在更好的做法吗?

在我看来,这只是干净的代码方法。模板中包含
title
肯定比
this.book.volumeInfo.title
getTitle()
更具可读性。实际上,
getTitle()
也是函数,就像
getTitle()
一样

额外: 但老实说,这不是将值从组件绑定到模板的最佳方式,因为您必须调用模板上的某些函数(这不是最佳选项)。如果确实不需要,则应避免调用任何函数或在模板上计算任何计算。相反,您可以只绑定一个属性

编辑1
使用手动更改检测时,最好将模板上的所有值保留在属性中。例如,您可以创建名为
state
的属性,该属性保存每个与模板相关的值。然后,随着状态属性值的每次更改,您可以检测到更改。这样,您将获得某种干净的代码和性能。

在我看来,这只是干净的代码方法。模板中包含
title
肯定比
this.book.volumeInfo.title
getTitle()
更具可读性。实际上,
getTitle()
也是函数,就像
getTitle()
一样

额外: 但老实说,这不是将值从组件绑定到模板的最佳方式,因为您必须调用模板上的某些函数(这不是最佳选项)。如果确实不需要,则应避免调用任何函数或在模板上计算任何计算。相反,您可以只绑定一个属性

编辑1
使用手动更改检测时,最好将模板上的所有值保留在属性中。例如,您可以创建名为
state
的属性,该属性保存每个与模板相关的值。然后,随着状态属性值的每次更改,您可以检测到更改。通过这种方式,您将获得某种干净的代码和性能。

getter和setter很受欢迎,因为它没有向您展示它背后的工作原理。当您看到
this.title='test'
而不是
this.setTitle('test')
时,它的可读性更高。我认为这种编写getter/setter的方法来自C#。如果
this.book
是一种服务,那么getter尤其有用。通过这种方式可以公开私有服务实例的属性。getter和setter很流行,因为它没有向您展示它背后的工作原理。当您看到
this.title='test'
而不是
this.setTitle('test')
时,它的可读性更高。我认为这种编写getter/setter的方法来自C#。如果
this.book
是一种服务,那么getter尤其有用。这样,您就可以从私有服务实例中公开属性。我同意。如果您不使用“onPush”changeDetection,如果您直接访问属性引用,Angular将能够更快地呈现页面。我同意。如果不使用“onPush”changeDetection,则如果直接访问属性引用,Angular将能够更快地呈现页面。
get title() {
  return this.book.volumeInfo.title;
}