Angular 模板表达式求值频率

Angular 模板表达式求值频率,angular,performance,angular-changedetection,Angular,Performance,Angular Changedetection,假设我们在Angular 2模板中有这些: <div>{{ firstName + ' ' + lasstName }}</div> ... <div>{{ getFullName(person) }}</div> ... <img [src]="baseUrl + '/' + 'area' + '/' + 'image'"> ... <img [src]="getFullAvatarUrl(person)"> {{fir

假设我们在Angular 2模板中有这些:

<div>{{ firstName + ' ' + lasstName }}</div>
...
<div>{{ getFullName(person) }}</div>
...
<img [src]="baseUrl + '/' + 'area' + '/' + 'image'">
...
<img [src]="getFullAvatarUrl(person)">
{{firstName+''+lasstName}
...
{{getFullName(person)}
...
...
我想知道这些表达式是否会在
ChangeDetectionStrategy.OnPush
ChangeDetectionStrategy.Default
组件中的每个更改检测周期进行计算

或者,Angular是否知道每个表达式依赖于哪些属性,并且仅当这些属性发生更改时才重新对其进行升级


在表达式中使用方法如何?Angular是否能够确定方法是否纯,从而确定哪些属性应导致表达式重新计算?

Angular始终重新计算表达式,然后与以前的值进行比较。您只需将断点放入ngfactory@yurzui,这基本上意味着纯管道总是比任何模板表达式更有效?即使计算像
firstName+''+lasstName
这样的简单表达式也不是真正的性能瓶颈。这是否正确?纯管道只有在其任何输入发生变化时才会进行评估。是的,纯管道在重型计算中更有效。我在这里测试了它,这是一个简单的案例@yurzui,太棒了,谢谢你!有趣的是,仅仅使
TestPipe
纯净也可以防止
test()
被多次调用!