首页 > 其他分享 >无限滚动效果如何实现

无限滚动效果如何实现

时间:2022-11-30 19:55:45浏览次数:64  
标签:滚动 效果 无限 组件 加载 数据 页面

由于网页的执行都是单线程的,在JS执行的过程中,页面会呈现阻塞状态。因此,如果JS处理的数据量过大,过程复杂,可能会造成页面的卡顿。传统的数据展现都以分页的形式,但是分页的效果并不好,需要用户手动点击下一页,才能看到更多的内容,假如让页面只展示有限的数据,到底部时自动加载下一页的内容就可以解决这一问题,这就是无限滚动。 一、实现的原理 1.视窗滚动到底部 2.原有数据展示完毕后,判断总数据是否大于已展示的数据,如果大于则继续向后端申请数据 3.将后端获取的新数据与此前数据合并展示在页面,由此形成无限滚动效果 二、引入组件

 无限滚动效果需要引入InfiniteScroll无限滚动和PullToRefresh下拉刷新组件,官网Ant Design Mobile - Ant Design Mobile

 

1.PullToRefresh下拉刷新

适用于对当前页面进行内容更新

当页面下拉至底部时,页面自动刷新更加数据

 

 

2.InfiniteScroll 无限滚动

列表滚动到底部自动加载更多数据,当 hasMore 属性为 true 时,用户页面滚动到底部 threshold (默认为 250px)时无限滚动组件会调用定义的 loadMore 函数。

 

 

 

 children:渲染自定义指引内容;loadMore:加载更多的回调函数;threshold:触发加载事件的滚动触底距离阈值,单位为像素;hasMore:是否还有更多内容

3、在页面使用无限滚动组件

 

引入组件后,在页面用组件包裹正文内容。

 

 problemList为当前所展示的页面数据,申请的数据为第一页,单页10条数据

 

 

 

 当页面划到底部刷新后,page+1,加载第二页的十条数据,以此类推,刷新时重回page等于1的状态

 

 

将第一页的 problemList加上后续拿到的数据,形成一个新的 problemList,并将数据显示在页面上

 

 此时无限滚动效果就成功了。

 

标签:滚动,效果,无限,组件,加载,数据,页面
From: https://www.cnblogs.com/AllenPan/p/16939557.html

相关文章