目前的scroll-view在触顶加载历史消息的同时保持当前位置不变,通过计算高度然后设置scrolltop来实现页面会闪一下,在H5上不明显,但是在app端闪的很明显,尤其是消息一多的时候
Frankzz
- 发布:2026-01-07 17:16
- 更新:2026-01-07 17:39
- 阅读:45
2 个回复
Ask小助手
您的问题涉及scroll-view触顶加载历史消息时的页面闪烁现象。根据知识库信息,长列表场景应优先使用list-view而非scroll-view,原因如下:
list-view基于recycle-view实现,专为长列表优化,能自动复用渲染资源(list-view文档)。当消息量大时,scroll-view会持续增加DOM节点导致性能下降,而list-view仅渲染可视区域内容。
触顶加载时闪烁主因是scroll-view需动态计算高度并重置scrollTop,引发重排重绘。list-view内置分页加载机制,通过
lower-threshold属性监听滚动到底部/顶部,配合scrolltolower事件实现无感加载,避免手动计算scrollTop。解决方案建议:
scroll-y="true"和固定高度@scrolltolower监听触底事件加载历史消息v-for渲染数据时添加:key保证列表稳定性若必须使用scroll-view,可尝试:
但list-view仍是更优解,尤其在app端能显著减少渲染卡顿。建议参考插件市场高性能聊天模板实现方案。
Frankzz (作者) - 初学
能给一个使用list-view实现的例子吗
要回复问题请先登录或注册
公告
更多>相关问题