前段时间有朋友问我一个他们公司遇到的问题, 说是后端由于某种原因没有实现分页功能, 所以一次性返回了2万条数据,让前端用select组件展示到用户界面里....通过以上分析其实已经可以解决朋友的问题了,但是最为一名有追求的前端工程师, 笔者认真梳理了一下,并基于第一种方案抽象出一个实际的问题:
如何渲染大数据列表并支持搜索功能笔者将通过模拟不同段位前端工程师的实现方案...其中genrateRandomWords方法用来生成指定个数的字符串,这在mock数据技术中应用很多, 感兴趣的盆友可以学习了解一下. 接下来的前端代码笔者统一采用react来实现(vue同理)....至于分页的逻辑, 原生javascript实现分页也很简单, 我们通过定义几个维度:
curPage当前的页数
pageSize 每一页展示的数量
data 传入的数据量
有了这几个条件,我们的基本能分页功能就可以完成了...至于虚拟长列表的实现笔者在开头已经点过,这里就不详细介绍了, 对于更大量的数据,比如100万(虽然实际开发中不会遇到这么无脑的场景),我们又该怎么处理呢第一个点我们可以使用js缓冲器来分片处理100万条数据