react第二单元(react的组件-state-props-setState)
第二单元(react的组件-state-props-setState)
课程目标
- 理解组件和组件的创建、以及能够根据实际场景去划分合理的组件。
- 理解并且能够灵活的应用组件中的state、props。
- 可以使用组件去实现各种前端交互。
知识点
- 组件的定义:组件能够表示一块视图的结构表现以及逻辑交互,并且可以重复利用。
- 如何创建组件(2中方式)
// 函数是组件
// 没有状态,只有属性
function ComponentName(props){
return 虚拟dom
}
// 类组件
// 有状态也有属性
class ComponentName extends React.Component{
static defaultProps = {
// 默认属性
}
state = {
// 状态
}
render(){
return 虚拟dom
}
}
组件中的状态(state)是和组件的视图对应的,状态决定了视图的呈现,每个组件都有自己独立的状态。组件的内部的状态是可以随意改变的,状态的改变意味着视图的呈现也发生了变化。
组件中的属性(props)是来在组件调用的时候,从外部传入组件内部的。在组件内部属性是不能被改变的。属性的数据在一定程度上也决定了视图的呈现。
想要改变组件内部的状态,从而让视图也跟着更新需要执行
this.setState方法理解
this.setState这个方法的原理,该方法接收两个参数:
this.setState(对象,回调函数)
// 该方法的作用是修改state中的数据,并且让视图更新为和state一致的视图。
// 该方法会把第一个参数接受的对象,和组件的state这个对象进行合并,然后在根据合并后的新对象,去更新视图
// 视图是的更新是异步,所以回调函数的作用就是等待视图更新成功后,才去执行。
- 使用props传参的写法,例子如下:
// 父组件 Parent
class Parent extends React.Component{
state = {
title: 'hello world'
}
render(){
return <div>
<Child title={this.state.title} />
</div>
}
}
// 子组件 Child
class Child extends React.Component{
render(){
return <div>
<h1>{this.props.title}</h1>
</div>
}
}
// 该例子演示了,props的用法,可以通过父组件给子组件传递参数。
- 可以给一个组件设置默认属性,代码如下:
class HelloWorld extends Component{
static defaultProps = {
// 在这里可以设置默认属性
text: 'hello world'
}
render(){
return <div>
{this.props.text}
</div>
}
}
#授课思路

#案例和作业
- 实现列表的展示以及二级菜单的展示,并且可以点击展开和收起菜单
react第二单元(react的组件-state-props-setState)的更多相关文章
- React基础篇(2) -- state&props&refs
内容简介 state props refs 行内样式及动态类名 state 基本介绍 React 把组件看成是一个状态机(State Machines).通过与用户的交互,实现不同状态,然后渲染 UI ...
- 从 0 到 1 实现 React 系列 —— 2.组件和 state|props
看源码一个痛处是会陷进理不顺主干的困局中,本系列文章在实现一个 (x)react 的同时理顺 React 框架的主干内容(JSX/虚拟DOM/组件/生命周期/diff算法/setState/ref/. ...
- React 世界的一等公民 - 组件
猪齿鱼Choerodon平台使用 React 作为前端应用框架,对前端的展示做了一定的封装和处理,并配套提供了前端组件库Choerodon UI.结合实际业务情况,不断对组件优化设计,提高代码质量. ...
- React Native中组件的props和state
一.组件的属性(props)和状态(state) 1.属性(props) 它是组件的不可变属性(组件自己不可以自己修改props). 组件自身定义了一组props作为对外提供的接口,展示一个组件时只需 ...
- React创建组件的方法,组件的props属性、state属性的用法和特点,父子组件传值,兄弟组件传值
创建组件的方法,组件的props属性.state属性的用法和特点,父子组件传值,兄弟组件传值 1.react组件 1.1.创建组件的方法 1.1.1.函数组件 定义一个组件最简单的方式是使用JavaS ...
- React 三大属性state,props,refs以及组件嵌套的应用
React 三大属性state,props,refs以及组件嵌套的应用 该项目实现了一个简单的表单输入添加列表的内容 代码如下 <!DOCTYPE html> <html> & ...
- React组件State提升(译)
译自:https://reactjs.org/docs/lifting-state-up.html (适当进行了裁减) 通常我们会碰到这样的情况,当某个组件的state数据改变时,几个React组件同 ...
- React.js 小书 Lesson11 - 配置组件的 props
作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson11 转载请注明出处,保留原文链接和作者信息. 组件是相互独立.可复用的单元,一个组件可能在不 ...
- 【05】react 之 组件state
1.1. 状态理解 React的数据流:由父节点传递到子节点(由外到内传递),如果顶层组件某个prop改变了,React会向下传递,重新渲染所有使用过该属性的组件.除此之外React 组件内部还具有 ...
随机推荐
- Wine和CrossOver之间的关系简单介绍
相信有些小伙伴们不太了解Wine和CrossOver之间的关系与区别,然而对此又很好奇,所以小编今天将给大家介绍一下这两者之间的关系与区别. Wine是什么? Windows.Linux和macOS是 ...
- [poi使用]使用excel模版导出excel
Apache POI是基于Office Open XML标准(OOXML)和Microsoft的OLE 2复合文档格式(OLE2)处理各种文件格式的开源项目.简而言之,您可以使用Java读写MS ...
- 自己动手实现java数据结构(九) 跳表
1. 跳表介绍 在之前关于数据结构的博客中已经介绍过两种最基础的数据结构:基于连续内存空间的向量(线性表)和基于链式节点结构的链表. 有序的向量可以通过二分查找以logn对数复杂度完成随机查找,但由于 ...
- testlink——解决测试度量与报告或图表中中文显示乱码问题
解决问题之前的图表: 解决方法: (1)下载SimHei.TTF字体(可以在自己电脑的C:/windows/fonts目录下找到,若找不到,可以在网上下载) (2)将SimHei.TTF文件拷贝到te ...
- IDEA创建web工程(超简单)
Idea创建Web工程 以新建模块为例. 新建Maven项目 勾选[Create from artchetype] 选择[org.apache.maven.archetypes:maven-arche ...
- 那么多人学习C++,学习它有什么好处?学完以后能从事哪些岗位?
相信很多人接触编程都是源于大学期间的那堂C++语言程序编程,但是这门课却只告诉了你编程语言是什么,却没告诉你要怎么去熟练掌握编程.所以,不可避免的是许多人在毕业前夕才发现虽然学会了C++,但是好像却不 ...
- Java安全之JNI绕过RASP
Java安全之JNI绕过RASP 0x00 前言 前面一直想看该JNI的相关内容,但是发现JNI的资料还是偏少.后面发现JNI在安全中应用非常的微妙,有意思. 0x01 JNI概述 JNI的全称叫做( ...
- 虚拟机VMware15 Ubuntu18.04 搭建FTP服务器
1.安装vsftpd sudo apt install vsftpd 2.查看是否安装成功,出现版本等信息即成功 sudo vsftpd -v 3.添加ftp用户 sudo useradd -m su ...
- 利用python库stats进行t检验
t检验通常分为三种,分别是单样本t检验.双样本t检验和配对样本t检验.本文基于python的scipy.stats函数对每种t检验进行了介绍和实验. 一.t检验介绍 无论哪种t检验,都有以下的基本 ...
- java顺序、选择、循环结构
一.顺序结构 二.选择结构 1.if都执行 2.if else if else 条件满足才执行 3.选择结构switch 一个case后有多条语句要加花括号 多个case的值不能相同 case中要加b ...