是否可以显示字符串列表,并且不跟踪它们的更改? (我有性能问题)。
我从REST API获取语言列表,然后使用* ngFor动态生成语言下拉列表。当我有10个以上的下拉菜单时,应用程序开始变慢(10个下拉菜单* 200个语言= 2000个要监视的项目)。
解决方案不是跟踪我的语言列表中的更改,因为它永远不会改变,但是没有任何记录。
代码
控制器
langs: string[] = ['English', 'German', 'Spanish', ...];
查看
<select ...>
<option *ngFor="lang of langs">{{lang}}</option>
</select>
答案 0 :(得分:0)
我们可以通过提供trackBy
功能帮助Angular跟踪添加或删除的项目。 trackBy
函数将索引和当前项作为参数,并需要返回此项的唯一标识符。
现在,当您更改集合时,Angular可以根据唯一标识符跟踪已添加或删除的项目,并仅创建或销毁更改的内容。请查看此处的文档:https://angular.io/api/common/NgForOf