当前位置: 首页 > news >正文

React 列表渲染基础示例

React 中最常见的一个需求就是「把一组数据渲染成一组 DOM 元素」,比如一个列表。下面是我写的一个最小示例,目的是搞清楚它到底是怎么工作的。

示例代码

// 定义一个静态数组,模拟后续要渲染的数据源
// 每个对象代表一个前端框架,注意一定要有唯一的 id
const list = [{ id: 1001, name: 'Vue' },{ id: 1002, name: 'React' },{ id: 1003, name: 'Angular' }
]// 定义一个函数式组件 App,React 推荐使用函数组件
function App() {return (<div className="App">{/* 这是组件的基本结构,先写个提示文本 */}this is App{/* 下面这个列表是重点,动态渲染 list 数据 */}<ul>{// 用 map 把每个数据项转成一个 <li> 元素// 注意:一定要加 key,React 需要这个 key 来区分每一项list.map(item => (<li key={item.id}>{item.name}</li>))}</ul></div>)
}// 别忘了把组件导出去,不然在其他文件里用不了
export default App

理解重点(写给自己看的)

1. 为什么要加 key

React 在渲染列表时,靠 key 来识别每一项。如果没有 key,它在对比新旧节点时会不清楚哪个该更新、哪个该删除,会导致性能低下或者奇怪的渲染 bug。最保险的做法就是用数据库里自带的 id

2. 为什么用 map

因为 map 可以把原始数组“转换”为另一种形式。在这里,我们把对象转成 <li> 元素,它刚好就是我们想要的结构。

3. JSX 中变量必须写在 {}

比如 {item.name},这是 JSX 的基本语法。哪怕只是变量,也必须包在大括号中,不然它会被当作字符串来处理。

4. className 而不是 class

这是 React 的一处设计细节:因为 class 是 JavaScript 的保留字,所以 React 用 className 来代替 HTML 的 class


这一小段代码虽然简单,但本质上已经覆盖了 React 列表渲染的基础。每次写 map 渲染列表时,我都会回头看一下这段例子,确保自己没有遗漏关键点。

下次我想试试给每一项加点击事件,比如高亮或者删除,思路其实也很清晰:加一个 onClick 就可以了。

相关文章:

  • 【裁判文书网DES3数据解密】逆向分析
  • HTTP测试智能化升级:动态变量管理实战与效能跃迁
  • C++使用STL容器迭代器失效情况
  • 安全测试报告模板
  • 小刚说C语言刷题——1033 判断奇偶数
  • Spark on K8s 在 vivo 大数据平台的混部实战与优化
  • 处理图像的深度神经网络(DNN)有哪些呢?
  • MCP服务端开发
  • Thymeleaf简介
  • 基于单片机的温湿度采集系统(论文+源码)
  • uniapp打包报错,
  • 第12篇:Linux程序访问控制FPGA端Switch<一>
  • 习题2.8 输出全排列
  • linux ptrace 图文详解(六) gdb单步调试
  • OJ笔试强训_1至24天
  • PHP腾讯云人脸核身获取SIGN Ticket
  • 强化学习算法系列(六):应用最广泛的算法——PPO算法
  • vcpkg缓存问题研究
  • [Redis]1-高效的数据结构P2-Set
  • C++获取程序的所有用到的库
  • 云南省交通发展投资有限责任公司原党委书记、董事长陈以东接受审查调查
  • 42岁北京大学科学技术与医学史系副教授陈昊逝世
  • 市场监管总局召开企业公平竞争座谈会
  • 大运河博物馆展出江苏国画院精品:傅抱石与八大郑板桥们
  • 十四届全国政协教科卫体委员会副主任杨小伟被查
  • 民生访谈|事关餐饮消费券、外牌车置换更新补贴,上海市商务委回应