You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React JS新手:如何通过循环复用组件精简代码?

解决方法:用数组map方法批量渲染组件

在React中,你可以利用数组的map()方法遍历notes数组,动态生成对应的ExpenseItem组件,无需重复编写代码。具体实现如下:

修改后的完整代码

import "./App.css";
import ExpenseItem from "./components/NoteItem";
import AppHeader from "./components/AppHeader";

function App() {
  const notes = [
    {
      title: "To do",
      date: new Date(2022, 11, 12),
      body: "Alagaan mo sarili mo mark",
    },
    {
      title: "To do1",
      date: new Date(2022, 11, 12),
      body: "Alagaan mo sarili mo mark1",
    },
    {
      title: "To do2",
      date: new Date(2022, 11, 12),
      body: "Alagaan mo sarili mo mark2",
    },
    {
      title: "To do3",
      date: new Date(2022, 11, 12),
      body: "Alagaan mo sarili mo mark3",
    },
  ];

  return (
    <div className="App">
      <AppHeader />
      {/* 遍历数组批量生成组件 */}
      {notes.map((note, index) => (
        <ExpenseItem
          key={index} // 必须添加key属性,帮助React识别列表项
          title={note.title}
          date={note.date}
          body={note.body}
        />
      ))}
    </div>
  );
}

export default App;

核心要点说明

  • map()方法:遍历notes数组的每一项,对每个note对象返回一个ExpenseItem组件,最终生成组件数组,React会自动渲染数组内的所有组件。
  • key属性:React列表渲染的必填项,用于唯一标识列表项,提升DOM更新效率。这里临时使用数组索引index作为key,若后续数据有新增、删除或排序操作,建议给每个note添加唯一id字段(如id: 1),改用key={note.id}更可靠。
  • 简化写法:无内容的组件标签可写成自闭合形式(如<AppHeader />),精简代码结构。

内容的提问来源于stack exchange,提问作者Cypher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 15:15:35