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 组件内部还具有 ...
随机推荐
- exec() has been disabled for security reasons
1.修改php.ini里面:disable_functions 2.重启服务器 2.如果是虚拟机,就重启虚拟机
- 金九银十想面BAT?那这些JDK 动态代理的面试点你一定要知道
一.什么是代理 代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问.代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理. 代理模式UM ...
- MathType总结编辑括号的类型(上)
括号的种类有很多,我们用得也很多,可以说无处不见,不只是在数学物理这些自然科学的公式中来断地出现括号,即使是在人文艺术类的领域也会有括号的出现.下面就和小编一起来看看公式编辑器编辑括号的类型吧! Ma ...
- 为什么换了电脑安装MindManager提示密钥失效?
相信很多MindManager用户遇到过这样的问题,不想在原电脑上使用MindManager思维导图软件,想要换电脑安装,但是提示该许可证密钥失效了.下面文章就教大家如何解决这个问题: 我们在Mind ...
- keras中seq2seq实现
这里只是简单的一个例子 输入序列 目标序列 [13, 28, 18, 7, 9, 5] [18, 28, 13] [29, 44, 38, 15, 26, 22] [38, 44, 29] [27, ...
- mybatis 动态SQL 源码解析
摘要 mybatis是个人最新喜欢的半自动ORM框架,它实现了SQL和业务逻辑的完美分割,今天我们来讨论一个问题,mybatis 是如何动态生成SQL SqlSessionManager sqlSes ...
- P3287 [SCOI2014]方伯伯的玉米田
首先可以证明,一定存在一种最优解,每次选择的区间结尾都是 \(n\).因为如果某一个区间结尾不是 \(n\),将其替换成 \(n\) 仍然保持单调不下降.接着都按这个策略拔高玉米. 令 \(f_{i, ...
- Java复数的定义与描述
1 //4.复数的定义与描述 2 package test; 3 4 import java.util.Scanner; 5 6 public class complex {//复数类 7 doubl ...
- SpringCloud 源码系列(1)—— 注册中心 Eureka(上)
Eureka 是 Netflix 公司开源的一个服务注册与发现的组件,和其他 Netflix 公司的服务组件(例如负载均衡.熔断器.网关等)一起,被 Spring Cloud 整合为 Spring C ...
- 手把手教你使用Vue/React/Angular三大框架开发Pagination分页组件
DevUI是一支兼具设计视角和工程视角的团队,服务于华为云DevCloud平台和华为内部数个中后台系统,服务于设计师和前端工程师.官方网站:devui.designNg组件库:ng-devui(欢迎S ...