对于使用ngrx状态存储的数组,太大了吗?

时间:2019-05-28 21:08:07

标签: angular architecture ngrx

在我的角度应用程序的整个生命周期中,我需要处理大约4000到5000个对象。我在此应用程序中使用ngrx进行状态管理,并将使用startWith运算符的效果加载此数据。我想知道对于以这种方式加载和存储状态的对象数组来说,太大了。

2 个答案:

答案 0 :(得分:0)

您可以尝试使用stackblitz.com(或类似工具)创建一个简单的测试,并查看Ngrx存储中的5000个项目对性能有何影响。

您可以使用

模拟一个大型数组
Array.from(
  new Array(5000),
  (c, i) => ({ test: `This is test object #${i}` })
)

答案 1 :(得分:0)

这实际上取决于阵列中的内容以及您打算如何处理。数组本身可以包含很多值,然后才对您的应用产生任何影响。

但是,如果您有一个包含大量数值的数组,这是我的建议:

  • 不要一次显示所有项目,请使用分页或无限滚动解决方案,您可以在那里找到它们(例如Material CDK中有一个通用的解决方案!)。这将是您可能会遇到的最大问题之一:在视图中显示太多
  • 如果您知道必须搜索数组,请尝试在收到数组后立即为搜索建立索引,而不是每次搜索更改时。例如,如果您有一系列用户,并且您知道用户界面具有“仅显示+18岁的人”,则可以创建一个包含所有这些人的Set(仅对他们的引用) )
  • 保持数据不变,并使用基本的Angular功能:将trackBy与列表中的*ngFor一起使用,同时还要changeDetectionStrategy:ChangeDetectionStrategy.OnPush`

我已经尝试查看一个应用程序是否可以处理10万个项目,答案是肯定的,尽管有时它会开始变得有些无响应。 因此,按照上面的信息,4或5k应该都很好。