React入门小册(三)组件

news/2024/7/14 21:35:30 标签: react.js, javascript, 前端

组件

React中的组件是可复用的代码块,其由JSX元素构成,并根据相关的逻辑和数据创建动态UI。

函数式组件 vs 类组件

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

函数式组件通常情况下仅从 props 中获取输入并且返回一个 JSX 元素。这些组件主要是通过声明函数的方式定义的。例如:

javascript">function Greeting(props) {
  return <h1>Hello, {props.name}!</h1>;
}

类组件则是通过 ES6 class 语法来定义的。它们可以存储内部 state、订阅生命周期方法等等。例如:

javascript">class Greeting extends React.Component {
  render() {
    return <h1>Hello, {this.props.name}!</h1>;
  }
}

我们可以使用 propTypes 定义组件接受哪些属性以及每个属性的类型。例如:

javascript">import PropTypes from 'prop-types';

class Greeting extends React.Component {
  static propTypes = {
    name: PropTypes.string.isRequired
  };

  render() {
    return <h1>Hello, {this.props.name}!</h1>;
  }
}

组件的使用

要使用定义好的组件,我们需要将它像普通 HTML 元素一样在 JSX 中使用:

javascript"><Greeting name="John" />

!!! 组件的名称必须以大写字母开头!!!

组合组件

React 的单向数据流使得让多个小组件组合形成大组件非常容易。例如:

javascript">function WelcomeBanner() {
  return (
    <div>
      <Greeting name="John" />
      <p>Welcome to our website!</p>
    </div>
  );
}

在这里,我们将两个组件 Greeting 和

组合到了一个 WelcomeBanner 中。


http://www.niftyadmin.cn/n/152969.html

相关文章

echart图表之highcharts

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言一、HighCharts是什么&#xff1f;二、使用步骤1.引入库2.前端代码3.展现结果4.后台自动截图总结前言 提示&#xff1a;这里可以添加本文要记录的大概内容&…

p81 红蓝对抗-AWD 监控不死马垃圾包资源库

数据来源 注意&#xff1a;一下写的东西是在p80 红蓝对抗-AWD 模式&准备&攻防&监控&批量这篇文章的基础上进行的 演示案例&#xff1a; 防守-流量监控-实时获取访问数据包流量 攻击-权限维持-不死脚本后门生成及查杀 其他-恶意操作-搅屎棍发包回首掏共权限…

Java的SPI

Java SPI&#xff08;Service Provider Interface&#xff09;是一种在 Java 平台上用于服务发现的机制&#xff0c;允许应用程序在运行时动态加载实现某一接口的类&#xff0c;并通过接口进行交互。 在 Java SPI 中&#xff0c;有三个角色&#xff1a;服务提供者、服务请求者、…

Understanding topics:理解话题(Topic)

文章目录背景1. 准备工作2. rqt_graph3. ros2 topic list 命令4. ros2 topic echo 命令5. ros2 topic info 命令6. ros2 interface show 命令7. ros2 topic pub 命令8. ros2 topic hz 命令9. 清理参考官方文档&#xff1a;Understanding topics 背景 ROS 2将复杂的系统分解成…

Arduino 驱动DS1307时钟模块使用介绍

Arduino 驱动DS1307时钟模块使用介绍 🔖DS1307时钟模块 📍DS1307时钟模块资料 https://pan.baidu.com/s/1mtXruLAktZj7UDhFD54BNw 提取码:d9xh 📋模块简介:DS1307 I2C实时时钟芯片(RTC) 24C32 32K I2C EEPROM存储器 解决DS1307带备用电池不能读写的问题。 充满电后,…

企业搭建FAQ的详细步骤及工具推荐!

FAQ是“常见问题解答”&#xff08;Frequently Asked Questions&#xff09;的缩写&#xff0c;是一种经典的帮助中心内容类型。FAQ通常包含用户经常提出的问题和对应的解答&#xff0c;旨在为用户提供快速和准确的帮助。以下是FAQ的特点和编写方法&#xff1a;特点&#xff1a…

工具、学习网站

目录 图片处理工具1.BgRemover-在线图片去底工具2.Convertio-文件转换器3.视频转音频4.视频转 Gif5.传图识色6.本地图片在线存储引用 - Image Upload7.RGB CMYK 转换工具各大工具网站入口极简壁纸图片视频素材网壁纸网站 一天一个不重样查询自己博客的内容摸鱼&#xff1a;学习…

Spring Boot 3.0系列【18】核心特性篇之单元测试和热部署

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot版本3.0.3 源码地址:https://gitee.com/pearl-organization/study-spring-boot3 文章目录 单元测试Junit 5 简介入门案例常用注解@SpringBootTest@Test@DisplayName@BeforeEach、@AfterEach@BeforeAll、@AfterAll其…