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

React入门学习——指北指南(第三节)

React 组件

在前面的内容中,我们了解了 React 的基础知识和入门案例。本节将深入探讨 React 中最核心的概念之一 —— 组件。组件是构建 React 应用的基础,理解组件的工作原理和使用方法,对于掌握 React 开发至关重要。

什么是组件?

在 React 中,组件是具有独立功能和 UI 的可复用代码块。可以将组件看作是构建用户界面的 “积木”,通过组合不同的组件,能够搭建出复杂的页面。

组件就像一个函数,它可以接收输入(称为 “props”),并返回 React 元素,用于描述页面应该呈现的内容。例如,一个按钮、一个表单或者一个完整的页面,都可以封装成组件。

组件的类型

React 中有两种主要的组件类型:函数组件和类组件。

函数组件

函数组件是用 JavaScript 函数定义的组件。它是最简单的组件形式,接收 props 作为参数,并返回 React 元素。

function Welcome(props) {&#x20; return \<h1>Hello, {props.name}\</h1>;}

在 React 16.8 引入 Hooks 之后,函数组件具备了与类组件相同的功能,并且写法更加简洁,因此成为了推荐的组件定义方式。

类组件

类组件是基于 ES6 类定义的组件,它需要继承React.Component,并且必须实现render()方法,该方法返回 React 元素。

class Welcome extends React.Component {&#x20; render() {&#x20;   return \<h1>Hello, {this.props.name}\</h1>;&#x20; }}

类组件在 Hooks 出现之前是实现复杂功能的主要方式,虽然现在函数组件更受青睐,但在一些旧项目中仍然会遇到类组件。

组件的属性(Props)

Props是组件的输入参数,用于在组件之间传递数据。Props 是只读的,组件不能修改自身接收的 props,这保证了组件的纯函数特性。

传递 Props

父组件可以通过在子组件标签上添加属性的方式,向子组件传递 props。

function App() {&#x20; return \<Welcome name="Alice" age={25} />;}

接收 Props

子组件通过参数接收父组件传递的 props。对于函数组件,props 是函数的参数;对于类组件,props 通过this.props访问。

// 函数组件接收propsfunction Welcome(props) {&#x20; return (&#x20;   \<div>&#x20;     \<h1>Hello, {props.name}\</h1>&#x20;     \<p>Age: {props.age}\</p>&#x20;   \</div>&#x20; );}// 类组件接收propsclass Welcome extends React.Component {&#x20; render() {&#x20;   return (&#x20;     \<div>&#x20;       \<h1>Hello, {this.props.name}\</h1>&#x20;       \<p>Age: {this.props.age}\</p>&#x20;     \</div>&#x20;   );&#x20; }}

Props 的默认值

可以为组件的 props 设置默认值,当父组件没有传递该 props 时,将使用默认值。

// 函数组件设置
http://www.dtcms.com/a/300196.html

相关文章:

  • 【星野AI】minimax非活动时间充值优惠漏洞
  • 数据存储:OLAP vs OLTP
  • java基础(day16)set-map
  • 从0到1学Pandas(七):Pandas 在机器学习中的应用
  • AI Agent开发学习系列 - langchain之LCEL(5):如何创建一个Agent?
  • React入门学习——指北指南(第五节)
  • java集合框架面试点(2)
  • [2025CVPR-图象合成、生成方向]ODA-GAN:由弱监督学习辅助的正交解耦比对GAN 虚拟免疫组织化学染色
  • 《每日AI-人工智能-编程日报》--2025年7月26日
  • 四大主流AI Agent框架选型梳理
  • 零基础学习性能测试第三章:jmeter性能组件应用(事件,并发,定时器)
  • DriverManager在rt.jar里,凭什么能加载到classpath下的驱动?
  • CPA战略-4.1-公司战略与组织结构
  • 人形机器人_双足行走动力学:弹性势能存储和步态能量回收
  • 聚类里面的一些相关概念介绍阐述
  • 杰理蓝牙耳机开发--三轴加速度传感器与IIC通信
  • Python:PyAutoGUI模拟鼠标移动点击事件,程序运行后,如何获取鼠标控制权了?
  • Redis的数据淘汰策略是什么?有哪些?
  • 昇思学习营-【模型开发与适配】学习心得_20250724
  • window上建立git远程仓库
  • Sklearn 机器学习 数值指标 entropy熵函数
  • Linux网络-------1.socket编程基础---(TCP-socket)
  • base64魔改算法 | jsvmp日志分析并还原
  • 在 Dell PowerEdge T440 上通过 iDRAC9 安装 Proxmox VE
  • Flutter开发实战之网络请求与数据处理
  • bmp280的压力数据采集(i2c设备驱动+设备树编写)
  • ACO-OFDM 的**频带利用率**(单位:bit/s/Hz)计算公式
  • 建筑施工场景下漏检率↓76%!陌讯多模态融合算法在工程安全监控的落地实践
  • OpHReda精准预测酶最佳PH
  • 进制间的映射关系