react 使用 antd-mobile组件库实现下滑加载数据

在许多的应用场景中都会存在的功能点,在商品列表展示时,所展示的仅仅是一部分数据,并非是完全展示,在存在大量数据时展示的所有的会导致页面渲染缓慢的问题,所以都是通过功能触发,增加更多的数据展示 

第一步: 

npm i antd-mobile  //引入组件库

import { InfiniteScroll, List } from 'antd-mobile'
import { sleep } from 'antd-mobile/es/utils/sleep'

 使用InfiniteScroll组件,sleep实现计时效果

const [hasMore, setHasMore] = useState(true) //判断是否还有数据需要进行加载
const [sedlist, setSedlist] = useState([])   //数据集合
  async function loadMore() {
    const append = await mockRequest()
    setSedlist(val => [...val, ...append])
    setHasMore(append.length > 0)
  }
  const [count, setCount] = useState(0)
  async function mockRequest() {
    if (count >= 3) {
      return []
    }
    var datas = []
    axios.get("http://localhost:3010/shopedlist?keyname=" + knamed).then(data => {
      console.log('data.data.data.channels', data.data.data)
      // setToplisted([...data.data.data.channels])
      datas = data.data.data.slice(count * 5, (count + 1) * 5)
    })
    await sleep(1000)
    let num = count
    num++
    setCount(num)
    return datas
  }
<div className='searedlist'>
        {sedlist.map(item => {
          return (
            <div className='sitem' key={item._id} onClick={() => godetails(item)}>
              <div className='itimg'>
                <img src={item.simg[0]} />
              </div>
              <div className='itcon'>
                <p>{item.sname}</p>
                <span>¥{item.price}</span>
              </div>
            </div>
          )
        })}
        <InfiniteScroll loadMore={loadMore} hasMore={hasMore} />
      </div>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值