当前位置:首页 > React

react如何写列表

2026-01-24 11:13:38React

在React中渲染列表的方法

使用map方法遍历数组生成列表元素
React中通常通过JavaScript的map方法将数组数据转换为React元素数组。每个列表项需要包含唯一的key属性以提高渲染性能。

const items = ['Apple', 'Banana', 'Orange'];

function FruitList() {
  return (
    <ul>
      {items.map((item, index) => (
        <li key={index}>{item}</li>
      ))}
    </ul>
  );
}

处理动态数据列表

当列表数据来自API或状态管理时,需要将数据存储在组件状态中。使用useStateuseEffect钩子可以处理异步数据获取。

react如何写列表

import { useState, useEffect } from 'react';

function DynamicList() {
  const [items, setItems] = useState([]);

  useEffect(() => {
    fetch('/api/items')
      .then(res => res.json())
      .then(data => setItems(data));
  }, []);

  return (
    <ul>
      {items.map(item => (
        <li key={item.id}>{item.name}</li>
      ))}
    </ul>
  );
}

可折叠列表实现

通过状态管理控制列表项的展开/折叠状态。每个列表项可以维护自己的展开状态,或者整个列表统一控制。

react如何写列表

function CollapsibleList() {
  const [expanded, setExpanded] = useState(false);
  const items = ['Item 1', 'Item 2', 'Item 3'];

  return (
    <div>
      <button onClick={() => setExpanded(!expanded)}>
        {expanded ? 'Collapse' : 'Expand'}
      </button>
      {expanded && (
        <ul>
          {items.map((item, index) => (
            <li key={index}>{item}</li>
          ))}
        </ul>
      )}
    </div>
  );
}

带交互的列表项

为列表项添加点击事件等交互功能时,需要注意事件冒泡和性能优化。避免在渲染函数中创建新函数,使用useCallback优化事件处理。

function InteractiveList() {
  const [selected, setSelected] = useState(null);
  const items = ['Red', 'Green', 'Blue'];

  const handleClick = (item) => {
    setSelected(item);
  };

  return (
    <ul>
      {items.map(item => (
        <li 
          key={item}
          onClick={() => handleClick(item)}
          style={{ color: selected === item ? 'red' : 'black' }}
        >
          {item}
        </li>
      ))}
    </ul>
  );
}

虚拟滚动长列表优化

对于大型列表(数百/数千项),使用虚拟滚动技术(如react-window库)可以显著提高性能,只渲染可见区域的列表项。

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

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

function VirtualList() {
  return (
    <List
      height={300}
      itemCount={1000}
      itemSize={35}
      width={300}
    >
      {Row}
    </List>
  );
}

标签: 如何写列表
分享给朋友:

相关文章

vue实现列表

vue实现列表

Vue 实现列表的方法 在 Vue 中实现列表渲染通常使用 v-for 指令,可以动态生成多个元素。以下是几种常见的实现方式: 基础列表渲染 使用 v-for 遍历数组,生成列表项。v-for 需要…

vue实现奇偶列表

vue实现奇偶列表

Vue实现奇偶列表样式 在Vue中实现列表项的奇偶不同样式,可以通过多种方式实现。以下是几种常见方法: 使用v-for和动态class绑定 通过v-for循环生成列表时,利用索引值判断奇偶性并绑定…

vue实现列表分类

vue实现列表分类

Vue 实现列表分类的方法 使用计算属性分类 通过计算属性对原始数组进行分类处理,返回分组后的对象或数组。适用于静态数据或需要响应式更新的场景。 computed: { categorizedI…

vue视频列表实现

vue视频列表实现

Vue 视频列表实现 数据准备 定义一个数组存储视频信息,每个视频对象包含标题、封面图、播放地址等属性。 data() { return { videos: [ {…

vue实现新建列表

vue实现新建列表

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

vue实现分类列表

vue实现分类列表

Vue 实现分类列表的方法 数据结构设计 使用数组存储分类数据,每个分类对象包含 id、name 等属性,子分类通过 children 字段嵌套。例如: categories: [ {…