我们公司是做阅读类软件的,现在用React遇到一个问题,就是如果一个列表中图书较多的话,比如100本书,使用一个组件以For循环的方式创建每一个图书文件,如图所示,就会非常卡。因为整个渲染过程占用了main进程,导致程序不能响应。
我们发现很多手机APP,会实现类似下面的效果,首先渲染一个占位的图片,然后再按顺序,一个一个渲染出真实的数据。我们猜测在React中也可以通过这种方式。
比如我们刚开始出来,就渲染100个空的div,如图所示;然后再每个200毫秒渲染一个真实的图书信息,如下图所示,最后,经过几次渲染,形成如上图所示的效果。最好可以做到,只有用户看到的那些块儿,才会渲染真实的数据。
请问,这个React能做吗?有没有相应的库可以使用?
多谢各位。
可以试试多线程Worker,GPU(e.g:GPU.js和Canvas)或者react-virtualized长列表加速的方案。