pro-components
pro-components copied to clipboard
🧐[问题]ProTable 初次渲染会很明显的闪一下,是否能够优化
下载的是官方提供的模板代码
点击列表页>查询表格时页面很明显的触发了重新渲染,使页面感觉闪了一下,是否能优化?
Hi @Liuerr0r! I'm Dosu and I’m helping the pro-components team.
ProTable 初次渲染时明显闪烁,主要原因是异步数据加载和 loading 状态切换导致的布局变化和重渲染,这是 ProTable 内部通过 request API 管理 loading 的常见表现。你可以尝试以下优化方式:
- 避免使用 columns 的 ellipsis 属性(即 tooltip 省略号),因为它会显著拖慢渲染速度,尤其是列数较多时,建议去掉 ellipsis: true 配置,性能会提升明显 参考。
- 减少 columns 的 render 自定义函数,render 逻辑无法缓存,复杂的 render 会导致每次渲染都执行,建议尽量用 valueType 代替 render 参考。
- 大数据量时开启虚拟滚动(v5.9+ 支持),虚拟滚动能极大提升大表格的渲染速度和流畅度 参考。
- 用骨架屏(Skeleton)或预留表格空间,减少 loading 到内容切换时的布局跳变,提升用户感知体验。
- 条件渲染 ProTable,loading 时不渲染表格,数据加载完成后再渲染(如
if(loading) return null),可以减少闪烁 参考。 - 升级到最新版,近期 PR(如 #9216)对排序和筛选做了优化,减少了不必要的状态更新和重渲染,有助于提升初次渲染的稳定性 PR 详情。
这些方式可以显著减轻初次渲染的闪烁和卡顿,但由于异步加载和 React 渲染机制,完全消除闪烁较难。可以结合实际场景选择合适的优化手段。
To reply, just mention @dosu.
How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other