angular - 模板上的只读函数会减慢角度吗?
问题描述
假设我有以下模板
<div>{{myvalue.ID}}</div>
我可以使用提供 ID
public ID: string;
或者
get ID() {
return this._ID;
}
甚至做类似的事情
<div>{{myvalue.getID()}}</div>
readonly getID= (): string => this.ID;
这实际上看起来像一个得到。
我的问题是,比较给出直接变量引用,get 和 readonly 函数是否会减慢角度?
我有一些变量想显示给用户,但要保密,因为我不希望任何人修改它们(在代码和模板中)。我相信没有其他方法可以这样做,但是它会影响性能吗?
解决方案
使用函数来绑定引用并不是好的设计。
造成这种情况的几个原因是:
- 每次运行角度变化检测 (CD) 时都会创建对该函数的新引用。由于一旦返回,函数引用就是 GC。
- 此外,每次 CD 运行时都会调用该函数。对于简单的 getter/setter 函数来说,这似乎并不多。但如果函数具有更复杂的实现,则可能会产生重大影响。最终使CD变得沉重
- 插值语法之间的任何代码都由 Angular 评估,这会导致 CD 周期的函数调用。
推荐阅读
- flutter - 在颤动中使变量整洁
- c# - PRISM:有没有办法让视图知道它是为哪个区域创建的?
- python - 在 for 循环中组织 if 语句以从字符串中提取特定数据
- java - 加密整数数据到数据库
- angular - 即使将 enableGroupEdit 设置为 true,ag-grid 中的分组单元格也不会在编辑单元格时设置新值
- sql-server - 尝试将 CTE 用于 IF
- elasticsearch - 用于预置 Elastic Search 的 AWS Cloud Formation 模板
- python - 如果有超过 2 个字段为空,则跳过该行
- c - 此函数返回一个列表,其中包含列表“A”中“pos_list”中给定位置的值
- javascript - 删除用户的个人资料