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

React 基础实战:从组件到案例全解析

React 基础实战专栏:从组件到案例全解析

本专栏围绕 React 核心概念(组件、Props、State、生命周期)展开,通过 6个实战案例+核心知识点拆解,帮你掌握 React 基础开发逻辑,每篇聚焦1个实战场景,搭配完整代码与原理讲解,适合 React 入门者巩固基础。

专栏目录

  1. 【组件传参实战】用 React 组件展示对象属性(猫的信息卡片)
  2. 【数组渲染实战】商品列表的两种表格实现方案
  3. 【父子组件实战】科目成绩的列表化展示(ul + li 嵌套)
  4. 【State 状态实战】循环滚动的同学姓名展示组件
  5. 【表单控件实战】下拉框默认选中的实现技巧
  6. 【综合案例实战】带图片的商品列表完整开发

第1篇:组件传参实战——展示猫的信息卡片

核心目标

掌握 组件接收对象参数 的方法,学会用 ...扩展运算符 简化属性传递,理解 Props 的只读特性。

实战代码

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>React 猫信息展示</title><!-- 引入 React 核心库 --><script src="js/react.js"></script><script src="js/react-dom.js"></script><script src="js/browser.js"></script><script type="text/babel">// 1. 定义猫的对象数据(包含name、age、color属性)const cat = {name: "诗书画唱家的神猫",age: 666,color: "黄色"};// 2. 定义展示组件(通过Props接收猫的属性)class CatInfo extends React.Component {render() {// Props 是只读的,不能修改return (<div style={{ border: "1px solid #333", padding: "10px", width: "200px" }}><p>名字:{this.props.name}</p><p>年龄:{this.props.age}</p><p>毛色:{this.props.color}</p></div>);}}// 3. 渲染组件:用...扩展运算符传递整个cat对象ReactDOM.render(<CatInfo {...cat} />,document.getElementById("root"));</script>
</head>
<body><div id="root"></div>
</body>
</html>

核心知识点

  • Props 传递:组件通过 this.props 接收外部参数,支持单个传递(name={cat.name})或用 ...扩展运算符 批量传递({...cat})。
  • Props 特性:Props 是只读对象,组件内部不能修改 this.props 的值(如 this.props.age = 10 会报错)。
  • 组件职责:该组件仅负责“展示数据”,数据由外部传入,符合 React “单向数据流”思想。

第2篇:数组渲染实战——商品列表的两种表格实现

核心目标

掌握 数组映射(map)渲染列表 的方法,对比“单组件渲染”与“父子组件拆分”的差异,理解列表渲染的 key 属性作用。

实战代码(两种方案)

方案1:父子组件拆分(低耦合,易维护)
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>商品列表(父子组件)</title><script src="js/react.js"></script><script src="js/react-dom.js"></script><script src="js/browser.js"></script><script type="text/babel">// 子组件:渲染单个商品行(tr)class ProductRow extends React.Component {render() {return (<tr><td>{this.props.name}</td><td>{this.props.price}</td></tr>);}}// 父组件:渲染表格(table)+ 批量生成子组件class ProductTable extends React.Component {render() {// 商品数组数据const products = [{ name: "诗书画唱牌商品1", price: 666 },{ name: "诗书画唱牌商品2", price: 888 }];// 映射数组生成子组件:key必须唯一(这里用商品名)const productRows = products.map(product => (<ProductRow key={product.name} name={product.name} price={product.price} />));// 渲染表格return (<table border="1px" style={{ borderCollapse: "collapse" }}><thead><tr>
http://www.lryc.cn/news/624152.html

相关文章:

  • Wasserstein GAN:如何解决GANS训练崩溃,深入浅出数学原理级讲解WGAN与WGAN-GP
  • C语言相关简单数据结构:双向链表
  • 【数据分享】黑龙江省黑土区富锦市土地利用数据
  • 正则表达式实用面试题与代码解析专栏
  • 【Linux系列】常见查看服务器 IP 的方法
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘imageio’问题
  • Go语言企业级权限管理系统设计与实现
  • 2024年08月13日 Go生态洞察:Go 1.23 发布与全面深度解读
  • pandas series常用函数
  • leetcode热题100——day33
  • Python 内置模块 collections 常用工具
  • (机器学习)监督学习 vs 非监督学习
  • 二分查找(Binary Search)
  • 机器学习算法篇(十三)------词向量转化的算法思想详解与基于词向量转换的文本数据处理的好评差评分类实战(NPL基础实战)
  • 第七十九:AI的“急诊科医生”:模型失效(Loss Explode)的排查技巧——从“炸弹”到“稳定”的训练之路!
  • Tomcat下载、安装及配置详细教程
  • 《设计模式》抽象工厂模式
  • 数学建模-评价类问题-优劣解距离法(TOPSIS)
  • Python 调试工具的高级用法
  • HTTPS 配置与动态 Web 内容部署指南
  • Pycharm Debug详解
  • mysql建库规范
  • Grid系统概述
  • 佳文赏读 || (CVPR 2025新突破) Robobrain:机器人操作从抽象到具体的统一大脑模型(A Unified Brain Model)
  • 基于Python的旅游推荐系统 Python+Django+Vue.js
  • SVN客户端下载与安装
  • 在鸿蒙中实现深色/浅色模式切换:从原理到可运行 Demo
  • 力扣第463场周赛
  • C++---迭代器删除元素避免索引混乱
  • 轻松配置NAT模式让虚拟机上网