React基础知识 精简全面 推荐
这篇博文主要对一些刚入门react框架的同学,以及对react基本知识进行巩固的,最后就是精简一下基本知识,以方便自己查看,感谢参考,有问题评论区交流,谢谢。
目录
1.JSX
2.Props 和 State
3.组件生命周期
4.列表 和 Keys
5.事件处理
6.表单
没有配置React的同学请参考:React 开发环境搭建 超详细 全面 推荐-CSDN博客
1.JSX
const element = <h1>Hello,world!</h1> ;
这是一段jsx代码,语法看起来很像html,实际上jsx语法所用的标签可以使用html标签,也可以使用自定义的react组件作为jsx中的标签。
jsx可以使用变量,name就是一个变量,注意:变量要用大括号括起来 { }
const name = 'young';
const element = <h1>Hello,{name}!</h1> ;
2.Props 和 State
这两个都是很重要的概念。react组件正常工作都需要依赖这两个组件,这两者都与react的状态有关系,两者的区别是 props是对外的,state是组件对内的接口。具体理解是
props是外部组件通过props将状态或者方法传递给当前组件来使用,所以props是父组件与子组件之间传递的接口;
state是组件内部的接口,用于维护组件内部的状态;
总之一句话 props是对外的,state是对内的。
3.组件生命周期
是react对外暴露出来的钩子函数,我们开发的时候可以在这些函数中定义一些逻辑,来实现业务功能逻辑。
这里分享几个常用的且比较重要的方法。
组件的挂载阶段:constructor(),render(),componentDidMount()
组件的更新阶段:render(),componentDidUpdate()
组件的卸载阶段:componentWillUnmount()
4.列表 和 Keys
渲染列表也是比较常用的,这里keys的值都是不相同的,为了保证当列表发生变化的时候react底层把key作为每一项的唯一标识。
const numbers = [ 1,2,3,4,5,6 ];
const listItems = numbers.map((number) = > \<li key={number.toString()} >{number}</li>
);
const todoItems = todos.map((todo) => <li key = {todo.id}>{todo.text}</li>
);
5.事件处理
5.1事件处理是和用户。进行交互必不可少的。注意react中事件名 onClick 是驼峰的写法C大写的
html中事件<button onclick="addUser()"> add
</button>React 中添加事件
<button onClick={addUser}> add
</button>
5.2 事件this指向问题。在构建函数中有这一句 this.handleClick = this.handleClick.bind(this);
为这个handleClick绑定了 this ,这个this就是当前的组件,如果没有这一句话,this指向的是当前组件的event点击事件对象。
class Toggle extends React.Component {constructor(props){super(props);this.state = {isToggleOn: true};this.handleClick = this.handleClick.bind(this);}handleClick() {this.setState(preState => ({isToggleOn: !preState.isToggleOn}));}
}
render(){return (<button onClick={this.handleClick}>{this.state.isToggleOn? 'ON':'OFF'}</button>)
}
此外还有es6的箭头函数同样也能实现这种效果,即上面的代码handleClick绑定this部分 也能换成下面代码
handleClick = () => {console.log('this is:',this);
}
6.表单
我们可以通过使 React 的 state 成为 “单一数据源原则” 来结合这两个形式,然后渲染表单的 React 组件也可以控制在用户输入之后的行为。这种形式,其值由 React 控制的输入表单元素称为“受控组件”。
在使用表单组件的时候推荐使用组件受控的方式
下面的代码例子中input输入框中 绑定onChange事件,当用户输入修改输入框内容,会触发onChange事件,事件处理拿到用户修改后的数据赋值给state.value的值,state发生变化,组件会重新被渲染,render方法重新被执行,input中的 value={this.state.value}重新设置成新的value值。
这样就保证了value的值是通过state状态的管理。
class NameForm extends React.Component {constructor(props) {super(props);this.state = {value: ''};this.handleChange = this.handleChange.bind(this);this.handleSubmit = this.handleSubmit.bind(this);}handleChange(event) {this.setState({value: event.target.value});}handleSubmit(event) {alert('A name was submitted: ' + this.state.value);event.preventDefault();}render() {return (<form onSubmit={this.handleSubmit}><label>Name:<input type="text" value={this.state.value} onChange={this.handleChange} /></label><input type="submit" value="Submit" /></form>);}
}
有了这些基础知识来新建一个自己的React项目吧 React如何搭建开发环境 创建一个新项目:
React 开发环境搭建 超详细 全面 推荐-CSDN博客

有问题评论区欢迎交流,谢谢参考。
react实战项目请参考:react实战项目干货

相关文章:
React基础知识 精简全面 推荐
这篇博文主要对一些刚入门react框架的同学,以及对react基本知识进行巩固的,最后就是精简一下基本知识,以方便自己查看,感谢参考,有问题评论区交流,谢谢。 目录 1.JSX 2.Props 和 State 3.组件生命周期…...
OV SSL证书申请指南
OV SSL证书除了验证域名所有权外还需要验证组织信息,这类证书适用于对公司官网、品牌、安全性等有较高程度要求的企业级用户。具体申请流程如下: 一 、注册账号 注册账号填写230919注册码即可获得大额优惠券和全程一对一技术支持https://www.joyssl.co…...
变色树脂的变色原理?变色树脂在水处理中的应用?
变色树脂是一种具有特殊功能的高分子材料,能够在特定条件下改变其颜色,从而指示环境变化(如pH值、温度、特定离子浓度等)或反应进程。这类树脂通常含有能够响应特定刺激的化学结构,通过化学反应、离子交换、分子构象变…...
16 敏捷开发实践(1)
敏捷方法:是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力。 敏捷开发:是一种以人为核心、迭代、循序渐进的开发方法。 敏捷实践:精益软件开发(LSD&#x…...
如何使用虚拟机如何安装 Kali Linux ?
1.下载虚拟机:https://www.virtualbox.org/wiki/Downloads 选择你的系统版本 2.下载kali linux系统镜像:https://www.kali.org/get-kali/#kali-virtual-machines 全部下载完成后,我们会得到以下文件! 1.压缩Kali Linux压缩包 2.安…...
Yarn UI 时间问题,相差8小时
位置 $HADOOP_HOME/share/hadoop/yarn/hadoop-yarn-common-2.6.1.jar 查看 jar tf hadoop-yarn-common-2.6.1.jar |grep yarn.dt.plugins.js webapps/static/yarn.dt.plugins.js 解压 jar -xvf hadoop-yarn-common-2.6.1.jar webapps/static/yarn.dt.plugins.js inflated: we…...
【JavaWeb项目】——外卖订餐系统之登入、登入后显示餐品信息、用户注册、注销部分
🎼个人主页:【Y小夜】 😎作者简介:一位双非学校的大二学生,编程爱好者, 专注于基础和实战分享,欢迎私信咨询! 🎆入门专栏:🎇【MySQL࿰…...
怎么保护电脑文件夹?文件夹保护方法大盘点
文件夹是管理电脑数据的重要工具,可以有效避免数据混乱。而为了避免文件夹数据泄露,我们需要严格保护文件夹。下面我们就来盘点一下文件夹的保护方法。 文件夹隐藏 隐藏文件夹是一种简单有效的保护方式,通过隐藏文件夹来避免其他人发现&…...
Temporal(时效)模式01
Andy Carlson, Sharon Estepp, Martin Fowler 著,透明 译 抽象 在面向对象设计中,我们不断使用“对象”(object)这个词。对象不仅仅用来表现真实世界中存在的物件,它们也被用来表现那些曾经存在但已经消失了的物件&…...
C语言 -- 动态内存管理
C语言 -- 动态内存管理 1. 为什么要有动态内存分配2. malloc 和 free2.1 malloc2.2 free 3. calloc 和 realloc3.1 calloc3.2 realloc 4. 常见的动态内存的错误4.1 对NULL指针的解引用操作4.2 对动态开辟空间的越界访问4.3 对非动态开辟内存使用free释放4.4 使用free释放一块动…...
docker 篇
简单描述下,有时候真的要熟练,否者上了生产真的不知所措。 背景:有个项目上线了,依赖的项目没有上线,因此需要紧急发布,发现:打包环境有问题,第一、架构不一致,第二、环…...
汽车、能源、烟草、电力行业洞见:TDengine 用户大会亮点荟萃
近年来,随着物联网、车联网、工业互联网等前沿技术的迅猛发展,全球数据量呈指数级增长。作为大数据的一个重要组成部分,时序数据因其在实时监控、预测分析和智能决策中的独特优势,正逐步成为数字化转型的关键要素。尤其在 AI 时代…...
从零开始编写一个Chrome插件:详细教程
个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119@qq.com] 📱个人微信:15279484656 🌐个人导航网站:www.forff.top 💡座右铭:总有人要赢。为什么不能是我呢? 专栏导…...
photoshop学习笔记——选区3 快速选择工具
快速选择工具 W shift W 在3种快速选择工具之间切换 对象选择工具 photoshop CC中没有这个工具,利用AI,将款选中的对象快速的提取选区,测试了一下,选区制作的非常nice快速选择工具 跟磁性套索类似,自动识别颜色相似…...
Centos7下安装配置最新版本Jenkins
1、基础环境配置 1.1 服务器下载Jenkins安装包 下载地址:Download and deploy 下载命令:wget https://get.jenkins.io/war-stable/2.452.3/jenkins.war 1.2 服务器安装配置JDK Jenkins 是基于 Java 语言开发的,因此需要 Java 运行环境支…...
c++ 构造函数与析构函数
本文参考菜鸟教程,仅作笔记用。 构造函数 构造函数(Constructor)是一种特殊的方法,用于在创建对象时进行初始化操作。构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void。在面…...
Lc63---1859将句子排序(排序)---Java版(未写完)
1.题目描述 2.思路 (1)首先将句子按空格分割成若干单词。 (2)每个单词的最后一个字符是它的位置索引。我们可以通过这个索引将单词恢复到正确的位置。 (3)按照单词的索引顺序排序这些单词。 (4…...
centos7-8/redhat7-8一键安装配置vsftp服务
1.脚本介绍 1.1.介绍: linux下一键安装及配置vsftpd服务 ,通过执行install.sh脚本,脚本会根据参数区域的值执行安装和配置vsftp服务,安装后会创建一个默认ftp用户wangxf密码wangxf2023 1、支持自定义安装(更改脚本内参数值) 2、…...
7月24日JavaSE学习笔记
序列化版本控制 序列化:将内存对象转换成序列(流)的过程 反序列化:将对象序列读入程序,转换成对象的方式;反序列化的对象是一个新的对象。 serialVersionUID 是一个类的序列化版本号 private static fin…...
微信小程序教程008:事件绑定
文章目录 事件绑定1、什么是事件2、小程序中常用事件3、事件对象的属性列表4、target和currentTarget的区别5、bindtap的语法格式6、在事件处理函数中为data中的数据赋值7、事件传参数8、bind:input语法格式9、实现文本框和data之间的数据同步事件绑定 1、什么是事件 事件是渲…...
PyTorch 2.8镜像保姆级教程:RTX 4090D下模型量化工具AutoGPTQ实操
PyTorch 2.8镜像保姆级教程:RTX 4090D下模型量化工具AutoGPTQ实操 1. 环境准备与快速部署 在开始使用AutoGPTQ进行模型量化之前,我们需要确保PyTorch 2.8镜像环境已经正确部署。本镜像专为RTX 4090D 24GB显卡优化,预装了CUDA 12.4和所有必要…...
2026权威评测:毕业论文AIGC降重盘点!免费试用首选
【CSDN极客特稿AI科研生产力专栏】 各位深夜还在实验室和IDE里跑模型、改Paper的硕博兄弟们,见字如面。 把日历翻到2026年,当大语言模型(LLM)的参数量卷上天际的同时,各大高校的“反作弊探测矩阵”也完成了史诗级的底层…...
League Akari:英雄联盟玩家的终极效率工具集,免费提升游戏体验
League Akari:英雄联盟玩家的终极效率工具集,免费提升游戏体验 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit …...
CPU工作原理:从二进制加法器到计算系统
CPU工作原理:从二进制加法器到计算系统的演进 1. 计算需求与二进制表示 在数字计算领域,加法是最基础也是最重要的运算之一。让我们从一个简单的数学问题开始:6324 244675 ?这个看似简单的加法问题,揭示了计算系统的…...
力扣原题《长度最小的子数组》,有序版(理想版最大值查找)纯手搓,已验证,方差版(考虑元素离散,大值周围全是小值的情况)在下一篇
理想版,大值周围是大值 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 示例…...
esp-hosted 方案深度解析:从架构选型到性能调优实战
1. 为什么选择esp-hosted方案? 如果你正在为嵌入式系统寻找稳定可靠的无线连接方案,esp-hosted绝对值得考虑。这个由乐鑫推出的开源方案,本质上是通过ESP32系列芯片为Linux主机或MCU设备提供Wi-Fi和蓝牙连接能力。我曾在多个工业物联网项目中…...
程序员转行学习 AI 大模型: 提示词工程 | 附精选学习资料
本文是程序员转行学习AI大模型的第12个核心知识点笔记,笔记后附精选的提示词工程学习资料。 当前阶段:还在学习知识点,由点及面,从 0 到 1 搭建 AI 大模型知识体系中。 系列更新,关注我,后续会持续记录分享…...
TinyMCE 5插件开发实战:手把手教你定制首行缩进功能(Vue版)
TinyMCE 5插件开发实战:手把手教你定制首行缩进功能(Vue版) 在内容创作领域,富文本编辑器的灵活性和扩展性往往决定了最终的用户体验。TinyMCE作为一款广受欢迎的富文本编辑器,其插件系统为开发者提供了无限可能。本文…...
图灵奖得主LeCun团队悄然引动世界模型革新!世界模型终于不崩了!48倍加速!15M参数单GPU端到端训练!自发涌现物理理解!
近日,杨立昆与其团队在新发布的论文《LeWorldModel:基于像素的稳定端到端联合嵌入预测架构》中,介绍了一种新的世界模型LeWorldModel(LeWM) ,这一模型可以端到端的训练,无需任何技巧,同时拥有15M参数、能在…...
The Dark Art of Low-Light Enhancement: Why Retinex Models Don’t Need Handcrafted Priors Anymore
无先验约束的Retinex模型:PairLIE如何重塑低光增强技术范式 1. 低光增强的技术演进与当前挑战 在计算摄影领域,低光图像增强(Low-light Image Enhancement, LIE)一直是核心难题之一。传统方法主要依赖手工设计的先验知识ÿ…...
