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、什么是事件 事件是渲…...
玩转Proteus虚拟仪器与图表仿真:用示波器、逻辑分析仪调试数字电路的完整指南
玩转Proteus虚拟仪器与图表仿真:用示波器、逻辑分析仪调试数字电路的完整指南 在数字电路设计领域,仿真验证环节往往决定着项目的成败。传统面包板调试需要反复焊接元器件、连接示波器探头,而一个简单的接线错误就可能导致数小时的排查。Prot…...
【高通SDM660平台】Camera 驱动 Bringup 实战:从 DTS 配置到 Vendor 模块集成
1. 高通SDM660平台Camera驱动Bringup概述 当你拿到一块基于高通SDM660平台的新硬件时,Camera驱动的Bringup工作可能会让你感到有些头疼。作为一个在这个领域摸爬滚打多年的工程师,我想分享一些实战经验,帮助你快速点亮Camera功能并完成基础调…...
SteamAutoCrack:终极指南!如何3步实现游戏免Steam启动?
SteamAutoCrack:终极指南!如何3步实现游戏免Steam启动? 【免费下载链接】Steam-auto-crack Steam Game Automatic Cracker 项目地址: https://gitcode.com/gh_mirrors/st/Steam-auto-crack SteamAutoCrack是一款专业的游戏自动破解工具…...
基于模型的测试在汽车行业的应用
作 者 | 路国光出 品 | 汽车电子与软件摘要:为解决汽车电子软件开发中传统测试效率低、覆盖不足、验证滞后等问题,本文以基于模型的系统工程(MBSE)为背景,研究基于模型的测试(MBT)在汽车行业的应…...
CANN/ge图引擎AIPP补边参数设置
aclmdlSetAIPPPaddingParams 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch…...
All-in-One Telegram机器人:加密货币监控与多功能集成部署指南
1. 项目概述 如果你和我一样,是个喜欢折腾各种效率工具,同时又对加密货币市场保持关注的玩家,那你肯定也经历过这样的场景:手机里塞满了各种功能的机器人——一个用来监控币价,一个用来下载视频,一个用来处…...
OpenCV和numpy版本打架?一个pip命令同时安装opencv-python和contrib的避坑实践
OpenCV与NumPy版本冲突全攻略:精准配对安装与兼容性验证 当你兴致勃勃地准备开始一个计算机视觉项目,却在导入OpenCV时遭遇numpy.core.multiarray failed to import这样的错误提示,那种挫败感我深有体会。这种问题通常发生在Python数据科学和…...
告别高价限流流量腰斩,凌风工具箱为 Temu 商品流量兜底
2026 年 Temu 平台比价管控逻辑已进入新阶段,但高价限流(前端屏蔽)仍为常态化风险。卖家若仍靠手动逐件处理限流预警,极易错过流量挽回窗口。凌风工具箱基于 Temu 官方 API 接口开发,打造批量处理高价限流专属模块&…...
如何快速将网页内容转换为Markdown格式:MarkDownload完整指南
如何快速将网页内容转换为Markdown格式:MarkDownload完整指南 【免费下载链接】markdownload A Firefox and Google Chrome extension to clip websites and download them into a readable markdown file. 项目地址: https://gitcode.com/gh_mirrors/ma/markdown…...
英雄联盟智能辅助工具Seraphine:三步快速上手的终极指南
英雄联盟智能辅助工具Seraphine:三步快速上手的终极指南 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine 你是否厌倦了在英雄联盟排位赛中手忙脚乱地查询对手战绩?是否希望有一个智能助…...
