从最近开始,当您没有在每个 *ngFor 上实现 trackBy-function 时,Angular styleguide-lint-extender“Codelyzer”会发出警告。我想知道为什么这被认为是一个问题。
- 在此博客中,实现 trackBy 的示例归结为
trackByFn(index, item) { return index;} // or item.id
. 如果我从 index 切换到 item.id,这将如何使我的应用程序更快?当涉及到数组插入或删除时,索引是最直接的事情。为什么 [ngFor] 指令应该比较对象标识值? - 在模块 ng_for_of.d.ts 我可以找到
_trackByFn
. 所以我假设,return index
-trackBy 无论如何都是默认配置?那么为什么明确地实施它被认为是一种好习惯呢?
现在就个人而言,我的应用程序中确实有一个大集合(数组),它位于 redux 商店中。它只能被一个空数组替换,或者可以添加新项目,例如:
return {...state, myArray: [...state.myArray, ...newItems]}
),
但从未移动或删除。item.id
对我来说跟踪而不是有意义index
吗?我真的应该return index;
在每个带有 *ngFor 的组件中实现一个 -function 吗?