7.7知识点

1.React.createElement()


        jsx语法是React.createElement()的语法糖
        虚拟dom
                本质是一个js对象(类型为Object)
                虚拟dom属性比较少(轻),真实dom属性方法比较多,因为在react内部使用,没有挂载到真实dom中,所以不用很多真实dom中的属性。(虚拟dom用console.log()打印,真实dom用console.dir()打印),react中的虚拟dom最终会转换为真实dom

2.react组件化开发


        模块化针对的是js 
        组件概念:组件是构建用户界面的基本单位,它可以是可重用的、自包含的、拥有自己的状态和生命周期的独立模块。(React里允许我们将UI视图(界面)拆分成可复用的代码片段,并对每个片段单独构思,我们将每个独立的UI片段称为"组件")
        优势:提高代码的复用率,便于维护
        分类:(首字母必须大写)


3.函数组件 : 


                使用js函数创建的组件,需要返回html结构
                没有this,为undefined

4. 类组件 : 


通过class定义组件,需要继承React.Component需要通过render函数返回html结构(ui结构/视图结构)
有this,指向当前类组件实例

 5.定义组件注意事项:


        (1)首字母大写,React会根据大小写来判断是组件还是普通标签
        (2)函数组件必须有返回值,返回值是页面结构,如果不需要返回任何内容,需要设置为null
        (3)组件调用直接写标签就行,单标签/双标签均可
        组件获取事件对象执行的第一个参数为事件对象
        如果需要另外传参,则需要回调函数包裹
         类组件: <button onClick={(e)=>this.clickHandler(e,'hello')}>clickHandler</button>
         函数组件 : <button onClick={(e)=>handler(e,2000)}>handler</button>
        改变类组件中的this指向的方法:将该方法用一个回调函数来包裹,还可以进行传参

 6.类组件定状态


        函数组件里面不能直接定状态,需要借助hooks
        类组件:通过state属性对象定义状态,在state中可以定义任何数据类型的状态,通过setState方法修改状态
        注意:
                1)不可直接修改state里面的状态
                2)如果同时修改多个状态,建议将状态放置在一个setState中去修改,尽可能少的使用setState
        setState修改数据,渲染到页面的过程是异步过程,所以获取到的数据是更新前的数据
        setState的第一个参数为对象,用来定义状态的;第二个参数是回调函数,用来获取更新之后的数据

calss App extends React.Component{state={ //state为普通的Object对象num:10,str:'hello',}clickHandler(){console.log('触发了')console.log(this.state)this.setState({//num:this.state.num++ 这个是直接修改num:this.state.num+1,str:'胡歌'       },()=>{console.log(this.state.num)//获取更新之后的数据        })    }render(){ //类组件通过render函数返回类组件return (<div><h3>App</h3><p>num:{this.state.num}</p><button onClick={()=>this.clickHandler()}>clickHandler</button></div>        )    }
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/209.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL每日一练:多表查询——连接查询、子查询

目录 1、首先创建员工表emp和部门表dept&#xff1a; dept表&#xff1a; emp表&#xff1a; 2、插入数据&#xff1a; dept表&#xff1a; emp表&#xff1a; 3、 按条件查找 1、首先创建员工表emp和部门表dept&#xff1a; dept表&#xff1a; create table dept (…

存储优化和Protobuf

存储优化和Protobuf 本文链接&#xff1a;https://blog.csdn.net/feather_wch/article/details/131649688 文章目录 存储优化和ProtobufAndroid存储方式Protobuf介绍使用原理 7z压缩 Android存储方式 1、Android存储方式 SharePreferenceSQLite: 复杂的数据结构File -> p…

以太网(Ethernet)入门了解

以太网&#xff08;Ethernet&#xff09;是一种常见的局域网&#xff08;LAN&#xff09;通信协议&#xff0c;它是由Xerox公司于1970年代中期开发的。以太网是一种基于广播技术的开放式网络协议&#xff0c;它允许设备在共享通信介质上进行通信。以下是关于以太网的基本概念、…

MySQL 多表查询练习

1.创建student和score表 CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address VARCHAR(50) );创建score表。SQL代码如下&#xff1a; CREATE TABLE s…

OpenCV 入门教程:Laplacian算子和Canny边缘检测

OpenCV 入门教程&#xff1a; Laplacian 算子和 Canny 边缘检测 导语一、Laplacian 算子二、Canny 边缘检测三、示例应用3.1 图像边缘检测3.2 边缘增强 总结 导语 边缘检测在图像处理和计算机视觉领域中起着重要的作用。 Laplacian 算子和 Canny 边缘检测是两种常用的边缘检测…

CAT1模块 EC800M HTTP使用总结记录

分享记录一下 CAT1 模块EC800 HTTP 协议使用流程 ...... by 矜辰所致目录 前言一、基础说明1.1 CAT1 与 4G1.2 EC800M 模块1.3 HTTP 二、开始使用2.1 硬件设计部分2.2 模块上电流程2.3 PDP 上下文2.3.1 什么是 SGSN 和 GGSN &#xff1f; 三、 HTTP 流程3.1 客户端3.1.1 PDP 上…

Spring MVC JSON 数据交互

&#x1f514; JSON 语法 | 菜鸟教程 为实现浏览器与控制器类之间的 JSON 数据交互&#xff0c; Spring MVC 提供了 MappingJackson2HttpMessageConverter 实现类默认处理 JSON 格式请求响应。该实现类利用 Jackson 开源包读写 JSON 数据&#xff0c;将 Java 对象转换为 JSO…

k8s发生故障,可以从哪些方面排查

目录 第一方面&#xff1a;审视集群状态 第二方面&#xff1a;追踪事件日志 第三方面&#xff1a;聚焦Pod状态 第四方面&#xff1a;检查网络连通性 第五方面&#xff1a;审视存储配置 第六方面&#xff1a;研究容器日志 第一方面&#xff1a;审视集群状态 K8S的集群状态…

Ubuntu18.04 系统安装 Docker

1、首先更新软件源&#xff1a; sudo apt-get updatesudo apt-get upgrade 2、安装Docker&#xff1a; sudo apt install docker -y 3、查看安装的Docker apt list docker 4、查看docker 进程 ps -ef|grep docker 5、查看docker 版本有问题 6、开启Docker服务 systemctl…

10_SPI_Flash 连续写实验

10_SPI_Flash 连续写实验 1. 实验目标2. 连续写方法3. 操作时序4. 流程框图4.1 顶层模块4.2 连续写模块 5. 波形图6. RTL6.1 flash_seq_wr_ctrl6.2 spi_flash_seq_wr 7. Testbench 1. 实验目标 使用页写指令&#xff0c;将串口发送过来的连续不定量数据写入 Flash。本实验中&a…

Web安全——数据库mysql学习

数据库mysql基础 Web安全分享一、数据库的基本操作1、MYSQL登录与退出2、MYSQL数据库的一些解释3、MYSQL注释符有三种&#xff1a; 二、数据库的一些基本操作1、数据库的增删改查(sql语句) 三、table 表的操作1、查看表结构2、查看表的内容3、建立表4、约束条件5、修改表的操作…

网络通信原理系统的认知(NEBASE第十四课)

1 物理层 第一层 物理层&#xff1a;建立、维护、断开物理连接&#xff0c;定义了接口及介质&#xff0c;实现了比特流的传输。 1.1传输层介质分类 有线介质&#xff1a;网线 &#xff08;双绞线&#xff09;光纤 无线: 无线电 1.2 双绞线 五类线 cat5 &#xff1a;适用 10…

“深入解析Redis的数据结构与应用场景“

标题&#xff1a;深入解析Redis的数据结构与应用场景 摘要&#xff1a;本文将深入解析Redis的数据结构与应用场景&#xff0c;包括字符串、列表、哈希表、集合和有序集合。通过详细介绍每种数据结构的特点和常见使用场景&#xff0c;帮助开发工程师更好地理解和应用Redis。 正…

Docker的使用

1. Docker的含义 1. 镜像&#xff1a;别人开发好的基础&#xff0c;类似C中的类 2. 容器&#xff1a;自己创建的实例 2.如何使用docker 可以从网上拉取相应的镜像&#xff0c;然后宿主机以下命令&#xff1a;创建Dockerfile文件docker build -t image_name:tag . 创建自己的do…

RxJava 2.0 全体系梳理(持续更新ing)

事件流 数据流 如何组合和变换流 如何订阅任何可观察的数据流 目录 一.源码解析 二.基本使用 步骤 一、创建Observable 二、创建Observer 三、使用subscribe进行订阅 四、取消订阅 Disposable 五种Observable(被观察者) Observable 和 Observer Cold Observable …

第二次CCF计算机软件能力认证

第一题&#xff1a;相邻数对 给定 n 个不同的整数&#xff0c;问这些数中有多少对整数&#xff0c;它们的值正好相差 1。 输出格式 输入的第一行包含一个整数 n&#xff0c;表示给定整数的个数。 第二行包含所给定的 n 个整数。 输出格式 输出一个整数&#xff0c;表示值正好相…

KMP算法

KMP KMP 算法是一个快速查找匹配串的算法&#xff0c;它的作用其实就是本题问题&#xff1a;如何快速在「原字符串」中找到「匹配字符串」。 而 KMP 算法的复杂度为 O(mn)实际上是O(N),因为O(M)不可能大于O(N) KMP 之所以能够在 O(mn)复杂度内完成查找&#xff0c;是因为其能…

uniapp:tabBar配置后不显示的问题

问题描述 uniapp的tabBar配置后不显示 问题解决 tabBar.list 数组的第一项必须和pages配置中的第一项要相同 参考文章 uniapp tabBar配置后不显示&#xff0c;无效的问题

巴斯夫与长三角物理研究中心开展合作,专注固态和钠离子电池领域

“巴斯夫&#xff0c;全球知名化学公司&#xff0c;宣布与长三角物理研究中心合作&#xff0c;在江苏溧阳市成立联合研究中心&#xff0c;专注于固态电池和钠离子电池的科研。” 根据巴斯夫官方微博消息&#xff0c;新成立的研究中心名为“巴斯夫–长三角物理研究中心新能源汽车…

高德地图的使用

JS API 结合 Vue 使用 高德地图 jsapi 下载、引入 npm add amap/amap-jsapi-loaderimport AMapLoader from amap/amap-jsapi-loader 使用2.0版本的loader需要在window对象下先配置 securityJsCode JS API 安全密钥使用 JS API 使用 script 标签同步加载增加代理服务器设置…