反应虚拟化的 CellMeasurer 性能

react-virtualized CellMeasurer performance

我计划对我的项目实施虚拟化反应,因为当前的解决方案无法处理动态高度。

在我的例子中,列表中的项目高度不同(高度取决于内容)。此外,这些项目可以根据需要扩展和减少。 react-virtualized 是否可以通过流畅的动画处理此类功能?

对我们来说效果很好。我们正在使用 MultiGrid(以便我们可以有行和列 headers)并且我们还有可变的行高。这需要使用 CellMeasurer。但是,需要注意的一件事是,当使用可变行高时,当您有很多列时,性能确实会受到影响。即使单元格被虚拟化,它们仍然必须 "render"(测量)行中的每个单元格以确定该行的行高。我发现在此配置中,50 列大约是合理性能的上限。对于 fixed-height 行,这根本不是问题。我们正在考虑使用一种基于我们的数据知识来定义行高的算法,以避免在我们有 > 50 列的这些情况下使用 CellMeasurer。这意味着我们将改用 rowHeight 函数。 Brian 在文档中有一个 link 讨论使用 CellMeasurer 的性能问题: https://github.com/bvaughn/react-virtualized/blob/master/docs/CellMeasurer.md#limitations-and-performance-considerations