当前位置:首页 > React

react 实现长列表案例

2026-01-27 16:10:00React

实现长列表的常用方法

虚拟滚动技术(Virtual Scrolling) 虚拟滚动通过仅渲染当前可视区域内的列表项来提升性能,适合超长列表场景。React生态中常用库如react-windowreact-virtualized

安装react-window

npm install react-window

基础实现示例:

import { FixedSizeList as List } from 'react-window';

const Row = ({ index, style }) => (
  <div style={style}>Row {index}</div>
);

const LongList = () => (
  <List
    height={500}
    itemCount={1000}
    itemSize={35}
    width={300}
  >
    {Row}
  </List>
);

分页加载方案

滚动加载(Infinite Scroll) 监听滚动事件动态加载数据,常用库如react-infinite-scroll-component

安装:

npm install react-infinite-scroll-component

实现示例:

import InfiniteScroll from 'react-infinite-scroll-component';

const LongList = ({ items, fetchMoreData, hasMore }) => (
  <InfiniteScroll
    dataLength={items.length}
    next={fetchMoreData}
    hasMore={hasMore}
    loader={<h4>Loading...</h4>}
  >
    {items.map((item, index) => (
      <div key={index}>{item.content}</div>
    ))}
  </InfiniteScroll>
);

性能优化技巧

避免不必要的重新渲染 使用React.memo包裹列表项组件,或通过useMemo缓存计算结果:

const MemoizedRow = React.memo(({ data, index }) => {
  return <div>{data[index]}</div>;
});

键值优化 确保每个列表项有稳定唯一的key,避免使用数组索引:

items.map(item => (
  <div key={item.id}>{item.name}</div>
))

原生实现方案

Intersection Observer API 不依赖第三方库的实现方式,通过观察元素可见性触发加载:

react 实现长列表案例

const observer = new IntersectionObserver((entries) => {
  if (entries[0].isIntersecting) {
    loadMoreItems();
  }
});

// 绑定到列表底部元素
observer.observe(document.querySelector('#loader'));

标签: 案例列表
分享给朋友:

相关文章

vue实现列表显示

vue实现列表显示

使用 Vue 实现列表显示 基础列表渲染 在 Vue 中,可以通过 v-for 指令实现列表渲染。以下是一个简单的示例: <template> <ul> <…

elementui案例

elementui案例

Element UI 案例 Element UI 是一个基于 Vue.js 的组件库,广泛用于构建企业级中后台前端界面。以下是一些常见的 Element UI 案例和使用场景: 表单设计 Eleme…

jquery 列表

jquery 列表

jQuery 列表操作 jQuery 提供了多种方法来操作 HTML 列表(如 <ul> 或 <ol>)。以下是一些常见的操作方式: 动态添加列表项 使用 append()…

vue实现列表滚动

vue实现列表滚动

Vue 实现列表滚动的方法 使用 CSS 实现滚动 通过 CSS 的 overflow 属性可以轻松实现列表滚动。在 Vue 的模板中,为列表容器添加 overflow-y: auto 或 overf…

vue实现新建列表

vue实现新建列表

Vue 实现新建列表的方法 在 Vue 中实现新建列表功能可以通过多种方式完成,以下是几种常见的方法: 使用 v-for 动态渲染列表 通过数据驱动视图的方式,利用 v-for 指令动态渲染列表项…

vue实现列表轮播

vue实现列表轮播

实现列表轮播的基本思路 使用Vue实现列表轮播的核心在于动态更新列表数据,结合CSS动画或过渡效果实现平滑切换。通常有两种实现方式:基于CSS动画的无限循环轮播和基于Vue数据绑定的动态更新轮播。…