react 长列表加载优化

文章目录背景虚拟化列表优化原理优化方案react-custom-scrollbarsreact-virtualizedreact-tiny-virtual-list背景开发中不可避免地会遇到加载滚动列表的问题。列表数据很长,成千上万的数据。假如有一千条数据,没有分页,想要同时渲染这一千条数据,生成对应的dom节点。而这些dom元素全部加载的话,会使页面失去响应,导致整个应用崩溃。(网页失去...
摘要由CSDN通过智能技术生成

背景

开发中不可避免地会遇到加载滚动列表的问题。列表数据很长,成千上万的数据。
假如有一千条数据,没有分页,想要同时渲染这一千条数据,生成对应的dom节点。
而这些dom元素全部加载的话,会使页面失去响应,导致整个应用崩溃。(网页失去响应,事件等无法及时被触发)

所以需要通过虚拟列表的方式来优化长列表的加载。
react优化长列表方案如下:

  • react-custom-scrollbars
  • react-virtualized
  • react-tiny-virtual-list

虚拟化列表优化原理

数组:将数据保存至数组中,只渲染可视窗口的列表元素。
当可视区域滚动时,需要根据滚动的位移量,计算出可视区域中的元素下标,通过下标来渲染数组元素。

分页:或需要通过分页请求数据接口,进行渲染

优化方案

react-custom-scrollbars

  • 滚动框组件Scrollbars(数组),InfiniteScroll(分页)
  • 组件内方法onScroll,onScrollStop,getValues,scrollToTop
  • scrollToTop
import { Scrollbars } from 'react-custom-scrollbars';

class App extends Component {
  handleClick() {
  
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值