当前位置: 首页 > 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.xdnf.cn/news/1194607.html

相关文章:

  • 云计算技术之docker build构建错误
  • Swagger 配置及使用指南
  • sklearn库中有关于数据集的介绍
  • 命令行创建 UV 环境及本地化实战演示—— 基于《Python 多版本与开发环境治理架构设计》的最佳实践
  • 【计算机组成原理】第一章:计算机系统概述
  • Django+celery异步:拿来即用,可移植性高
  • 【408二轮强化】数据结构——线性表
  • C++ TAP(基于任务的异步编程模式)
  • 在VS Code中运行Python:基于Anaconda环境或Python官方环境
  • 如何在 Ubuntu 24.04 或 22.04 中创建自定义 Bash 命令
  • 机器学习——随机森林算法分类问题案例解析(sklearn)
  • Nacos-服务注册,服务发现(二)
  • 智慧城市多目标追踪精度↑32%:陌讯动态融合算法实战解析
  • bmp280的压力数据采集(i2c设备驱动+设备树编写)
  • 数据结构 二叉树(3)---层序遍历二叉树
  • 知识图谱的初步探索
  • 智慧农业病虫害识别准确率↑32%:陌讯多模态融合算法实战解析
  • 特产|基于SSM+vue的南阳特产销售平台(源码+数据库+文档)
  • LLM中 词嵌入向量中的正负值表示什么含义
  • GO 从入门到精通
  • python---元组解包(Tuple Unpacking)
  • VisionPro系列讲解 - 03 Simulator 模拟器使用
  • 【RHCSA 问答题】第 13 章 访问 Linux 文件系统
  • Windows Server存储池,虚拟磁盘在系统启动后不自动连接需要手动连接
  • 【js】Function.prototype.apply与Function.prototype.apply.call
  • 学习日志19 python
  • 电子电气架构 --- 高阶智能驾驶对E/E架构的新要求
  • 1.安装anaconda详细步骤(含安装截图)
  • Rust赋能土木工程数字化
  • Go的管道——channel