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

简介: 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月前
|
前端开发 JavaScript API
React开发需要了解的10个库
本文首发于微信公众号“前端徐徐”,介绍了React及其常用库。React是由Meta开发的JavaScript库,用于构建动态用户界面,广泛应用于Facebook、Instagram等知名网站。文章详细讲解了Axios、Formik、React Helmet、React-Redux、React Router DOM、Dotenv、ESLint、Storybook、Framer Motion和React Bootstrap等库的使用方法和应用场景,帮助开发者提升开发效率和代码质量。
116 4
React开发需要了解的10个库
|
1月前
|
人工智能 自然语言处理 前端开发
SpringBoot + 通义千问 + 自定义React组件:支持EventStream数据解析的技术实践
【10月更文挑战第7天】在现代Web开发中,集成多种技术栈以实现复杂的功能需求已成为常态。本文将详细介绍如何使用SpringBoot作为后端框架,结合阿里巴巴的通义千问(一个强大的自然语言处理服务),并通过自定义React组件来支持服务器发送事件(SSE, Server-Sent Events)的EventStream数据解析。这一组合不仅能够实现高效的实时通信,还能利用AI技术提升用户体验。
166 2
|
10天前
|
前端开发 UED 开发者
React 数据表格分页实现
本文详细介绍了如何在React中实现数据表格的分页功能,包括基础实现、常见问题及解决方案。通过状态管理和事件处理,我们可以有效地减少页面加载时间,提升用户体验。文章提供了完整的代码示例,帮助开发者解决分页按钮样式、按钮过多和初始加载慢等问题,并给出了相应的优化方案。
87 53
|
11天前
|
前端开发 搜索推荐 测试技术
React 数据表格排序与过滤
本文介绍了如何在 React 中实现数据表格的排序和过滤功能,从基础概念到实际代码实现,涵盖排序和过滤的基本原理、实现步骤、常见问题及解决方法。通过合理管理状态、优化性能和避免常见错误,帮助开发者提高用户体验和开发效率。
30 4
|
2月前
|
前端开发 JavaScript UED
react或者vue更改用户所属组,将页面所有数据进行替换(解决问题思路)____一个按钮使得页面所有接口重新请求
在React或Vue中,若需在更改用户所属组后更新页面所有数据但不刷新整个页面,可以通过改变路由出口的key值来实现。在用户切换组成功后,更新key值,这会触发React或Vue重新渲染路由出口下的所有组件,从而请求新的数据。这种方法避免了使用`window.location.reload()`导致的页面闪烁,提供了更流畅的用户体验。
56 1
react或者vue更改用户所属组,将页面所有数据进行替换(解决问题思路)____一个按钮使得页面所有接口重新请求
|
1月前
|
资源调度 前端开发 JavaScript
React中classnames库使用
【10月更文挑战第7天】
|
21天前
|
资源调度 前端开发 JavaScript
React 测试库 React Testing Library
【10月更文挑战第22天】本文介绍了 React Testing Library 的基本概念和使用方法,包括安装、基本用法、常见问题及解决方法。通过代码案例详细解释了如何测试 React 组件,帮助开发者提高应用质量和稳定性。
33 0
|
2月前
|
前端开发
React技术栈-react使用的Ajax请求库实战案例
这篇文章介绍了在React应用中使用Axios和Fetch库进行Ajax请求的实战案例,展示了如何通过这些库发送GET和POST请求,并处理响应和错误。
55 10
React技术栈-react使用的Ajax请求库实战案例
|
2月前
|
前端开发
React技术栈-react使用的Ajax请求库用户搜索案例
这篇文章展示了一个React技术栈中使用Ajax请求库(如axios)进行用户搜索的实战案例,包括React组件的结构、状态管理以及如何通过Ajax请求获取并展示GitHub用户数据。
33 7
React技术栈-react使用的Ajax请求库用户搜索案例
|
2月前
|
前端开发
react中使用Modal.confirm数据不更新的问题解决
文章讨论了在React中使用Ant Design的`Modal.confirm`时更新数据不生效的问题,并提供了解决方案。原因是React状态更新可能是异步的,导致Modal的内容更新后不会立即反映在UI上。解决办法是在状态更新后使用`useEffect`钩子来调用Modal实例的`update`方法,从而更新Modal的内容。
85 0
react中使用Modal.confirm数据不更新的问题解决