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 组件内部还具有 ...
随机推荐
- bWAPP----HTML Injection - Stored (Blog)
HTML Injection - Stored (Blog) 界面 1 <div id="main"> 2 3 <h1>HTML Injection - S ...
- get_object_vars
get_object_vars()
- Navicat总是提示主键不存在问题
Windows 和 Linux:打开navicat > 找到工具 > 点击选项- > 外观 > 点击数据 & 网格 > 取消勾选显示主键警告 > 确定. M ...
- 掌握Python可以去哪些岗位?薪资如何?
一.人工智能 Python作为人工智能的黄金语言,选择人工智能作为就业方向是理所当然的,就业前景也还不错.人工智能工程师的招聘起薪一般在20K-35K,如果是初级工程师,起薪一般12K. 二.大数据 ...
- MindManager教程:高中数学函数思维导图怎么画
说起函数,大家应该都不陌生吧,函数不论是在初中还是在高中都是需要重点学习的知识点,不仅仅是重点,更是作为难点曾出现在高考最后一道大题中.那今天我们就来做一个函数思维导图,来简单地了解一下关于函数的一些 ...
- Camtasia中对录制视频进行编辑——音效
市场上有很多的视频处理软件,形形色色的软件往往会使人眼花缭乱,而对于那些短视频的制作者来说,拥有一款好的视频处理软件会让自己的视频收获更多的点赞.那么今天我便给大家推荐一款同时具有录屏和编辑视频功能的 ...
- 如何合理利用iMindMap中的模板创建思维导图
思维导图的制作并不是一项简单的工作,尤其是对许多工作或学习有特殊要求的朋友而言,当我们需要应对不同场景制作不同的思维导图时,总不能都靠自己从头制作,这样难度比较大也比较耗时.而iMindMap(win ...
- python+selenium利用cookie记住密码
先上代码 1 from selenium import webdriver 2 from time import sleep 3 4 dr = webdriver.Chrome() 5 dr.get( ...
- H5,Css小姐又作画了
用H5和CSS3做出自己名字缩写. <html> <head> <meta charset="utf-8"> <title>name ...
- Go 大数据生态迎来重要产品 CDS
项目地址:https://github.com/tal-tech/cds ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS).它有着优异的性能,可以快速部署和运行. 不 ...