草庐IT

Angular 由一个bug说起之二:trackBy的一点注意事项

trackBy是angualr优化项目性能的一种方法,通过返回一个具有绑定性的唯一值,比如id,手机号,身份证号之类的,来让angular能够跟踪数组的项目,根据数据的变化来重新生成DOM,这样就节约了性能。但是如果是使用ngFor循环组件,添加trackBy的时候就需要注意这个组件自身的数据更新机制是否正常,因为没有使用trackBy的时候,for循环的数组数据改变了,angular会把数组里所有的项目都重新生成,那些项目的组件也都会重新初始化。但当你使用了trackBy,数据发生了变化,angular只会把那些数据有变化的项目重新生成,这样项目的组件也不会重新初始化,如果这个组件的数据更新

html - Angular 有效地使用 trackBy 和 ngFor

在Angular中,*ngFor是否需要trackBy函数?看了几篇here,here,here,和here也就是说使用trackBy会提高性能并具有更好的内存管理。但我想知道trackBy是否是这样的改进,那么为什么它不是默认行为?这是默认行为,我正在查看的所有内容都已过时吗?如果这不是默认行为,我的项目在90个组件中有大约90个*ngFor,我想知道是否有一种方法可以在我不包括以下函数90次的情况下使用trackBy。我还想避免添加服务并将其导入90次。HTML{{l.name}}TStrackByFn(index,item){returnindex}