React长列表优化:虚拟列表(一)
单条表单高度固定的长列表,虚拟滚动
步骤1:新建server.js 返回10000+条数据
1 | const Koa = require("koa"); |
1 | router.get('/api/getMock',async ctx =>{ |
步骤2:接受后端数据,并传入到子组件
1 | const useData = ()=>{ |
步骤3:子组件布局
1 | <div className="list-view" ref = {listView} > |
解释一下:最外层容器相对定位,里面一个plantom使用绝对定位并把高度设定为lists.length * itemHeight,使最外层容器出现滚动。里层的content容器绝对定位避免频繁的回流与重绘。
步骤3:VirtuaList组件
1 | const Li = (props) =>{ |
参考:
再谈前端虚拟列表的实现
react-tiny-virtual-list
目前这个还很粗鄙,后续还会发布更多的版本
the end
- 本文作者: Tsailor
- 本文链接: http://tsailor.github.io/2020/08/24/React长列表优化:虚拟列表(一)/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!