可变高度长列表如何维持滚动锚点并复用有限的视图节点?
简答题困难1017 次浏览
参考答案与解析
# 核心结论
可变高度长列表的核心不是简单隐藏屏幕外元素,而是维护可靠的“数据索引—项目高度—累计偏移”模型,并在高度估算被真实测量值修正时保持滚动锚点稳定。通常只渲染可视区及前后缓冲区,用顶部和底部占位空间模拟完整列表高度;每项必须具有稳定的数据键,高度缓存、组件状态和节点绑定都应以数据身份为依据。视图节点可以限制在一个有限集合内循环复用,但节点复用后必须同步更新内容、状态、焦点和无障碍属性,不能让上一条数据的局部状态泄漏到下一条数据。
# 底层机制
固定高度列表可以用 scrollTop / itemHeight 直接推算起始索引,可变高度列表则必须求各项高度的前缀和。设第 i 项高度为 h[i],其顶
