【React】组件基础使用

embedded/2025/2/21 7:59:08/

1. react组件

在react中,组件就是首字母大写的函数,内部存放了组件的逻辑、UI,渲染组件只需要把组件当成标签书写。

  1. 使用组件有两种方式:自闭和 、成对标签
javascript">function App() {// 定义组件function Component() {return <div>我是一个自定义组件</div>}return (<div className="App">{/* 方式1 */}<Component/>{/* 方式2 */}<Component></Component></div>);
}export default App;

在这里插入图片描述

2. useState使用

  1. 一个react hook(函数),允许我们向组件添加一个状态变量,从而控制影响组件的渲染结果
  2. 本质:状态变量发生变化,组件的UI也会跟着变化(数据驱动视图)

在这里插入图片描述
使用useState实现一个计数器

javascript">import { useState } from "react";function App() {const [count, setCount] = useState(0)function add() {// 作用:1、用传入的新值修改count的值// 2. 使用新的count渲染uisetCount(count + 1)}return (<div className="App"><button onClick={add}>{count}</button></div>);
}export default App;

3. useState修改状态的规则

  1. 状态不可变(状态只读,始终替换它而不是修改它,直接修改状态不能引发视图更新)
  2. 对于对象类型的状态变量,应始终传给set方法一个全新的对象来进行修改
javascript">import { useState } from "react";function App() {const [count, setCount] = useState(0)const [form, setForm] = useState({name: '赵四'})function add() {// 作用:1、用传入的新值修改count的值// 2. 使用新的count渲染uisetCount(count + 1)}function changeForm() {// 错误写法,直接修改// form.name = '刘能'// 正确写法setForm({...form,name: '刘能'})}return (<div className="App"><button onClick={add}>{count}</button><button onClick={changeForm}>hi,我是{form.name}</button></div>);
}export default App;

如何更新数组类型的状态变量,可以参考react官方文档:https://react.docschina.org/learn/updating-arrays-in-state

参考:黑马程序员react教程


http://www.ppmy.cn/embedded/119044.html

相关文章

力扣(leetcode)每日一题 2207 字符串中最多数目的子序列

题干 2207. 字符串中最多数目的子序列 给你一个下标从 0 开始的字符串 text 和另一个下标从 0 开始且长度为 2 的字符串 pattern &#xff0c;两者都只包含小写英文字母。 你可以在 text 中任意位置插入 一个 字符&#xff0c;这个插入的字符必须是 pattern[0] 或者 pattern…

CentOS 修改服务器登录密码的完整指南

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

OpenHarmony(鸿蒙南向)——平台驱动开发【MIPI DSI】

往期知识点记录&#xff1a; 鸿蒙&#xff08;HarmonyOS&#xff09;应用层开发&#xff08;北向&#xff09;知识点汇总 鸿蒙&#xff08;OpenHarmony&#xff09;南向开发保姆级知识点汇总~ 持续更新中…… 概述 功能简介 DSI&#xff08;Display Serial Interface&#x…

【Python】Flask-Admin:构建强大、灵活的后台管理界面

在 Web 应用开发中&#xff0c;构建一个直观且功能丰富的后台管理系统对于处理数据和维护应用至关重要。虽然构建一个完全自定义的管理后台界面非常耗时&#xff0c;但 Flask-Admin 提供了一个简洁、灵活的解决方案&#xff0c;可以让开发者快速集成一个功能齐全的后台管理系统…

k8s删除和添加node节点

一、删除node节点 1.首先生成token kubeadm create token --print-join-command 保存打印出的信息&#xff0c;默认有效期为24h kubeadm token list 查看token 2.排空node节点上运行的pod kubectl drain node1 --delete-local-data --force --ignore-daemonsets 3.删除…

Linux云计算 |【第四阶段】RDBMS1-DAY2

主要内容&#xff1a; 常用函数&#xff08;函数分类1&#xff1a;单行、分组&#xff1b;函数分类2&#xff1a;字符、数学、日期、流程控制&#xff09;、分组查询group by、连接查询 一、常用函数 1. 按使用方式分类 ① 单行函数 单行函数&#xff08;Scalar Functions&…

STMCubeMx——C8T6的串口调试、接收与发送

一、stmCubeMX串口通信的步骤 1、新建一个文件&#xff0c;选择自己的芯片 2、配置时钟 3、配置串口 串口的模式解析可以跳转到以下文章查看 stmCubemx——配置串口时的几种模式-CSDN博客在STM32CubeMX中配置串口&#xff08;USART或UART&#xff09;时&#xff0c;可以设置…

OpenCV第十二章——人脸识别

1.人脸跟踪 1.1 级联分类器 OpenCV中的级联分类器是一种基于AdaBoost算法的多级分类器&#xff0c;主要用于在图像中检测目标对象。以下是对其简单而全面的解释&#xff1a; 一、基本概念 级联分类器&#xff1a;是一种由多个简单分类器&#xff08;弱分类器&#xff09;级联组…