【发布时间】:2019-05-29 13:36:26
【问题描述】:
我有一个包含大约 4000 到 5000 个对象的数组,我需要在我的 Angular 应用程序的整个生命周期中使用它们。我在这个应用程序中使用 ngrx 进行状态管理,并使用 startWith 运算符的效果加载这些数据。我想知道对于以这种方式加载和存储状态的对象数组来说太大了。
【问题讨论】:
标签: angular architecture ngrx
我有一个包含大约 4000 到 5000 个对象的数组,我需要在我的 Angular 应用程序的整个生命周期中使用它们。我在这个应用程序中使用 ngrx 进行状态管理,并使用 startWith 运算符的效果加载这些数据。我想知道对于以这种方式加载和存储状态的对象数组来说太大了。
【问题讨论】:
标签: angular architecture ngrx
这实际上取决于您的阵列中有什么,以及您打算用它做什么。在对您的应用产生任何影响之前,数组本身可以包含很多值。
但是,如果您有一个包含大量值的数组,我的建议是:
Set(仅对他们的引用)
trackBy 与您的 *ngFor 以及 changeDetectionStrategy: ChangeDetectionStrategy.OnPush` 一起使用。我已经尝试查看一个应用是否可以处理 10 万个项目,答案是肯定的,尽管有时它开始感觉有点反应迟钝。 因此,根据上述信息,4 或 5k 应该都很好。
【讨论】:
您可以尝试使用 stackblitz.com(或类似的)创建一个简单的测试,并查看 Ngrx 商店中的 5000 个项目对性能的影响。
你可以用
模拟一个大数组Array.from(
new Array(5000),
(c, i) => ({ test: `This is test object #${i}` })
)
【讨论】: