React知识回顾2

119 阅读1分钟

react {}单括号写法

props

props 又外部传入的,父组件传递给子组件
组件自身定义的props. 只能是类组件 通过一个关键字 static defaultProps = {}来定义自身属性
props类型校验 可以用 prop-types

state

state定义方法1构造函数定义

constructor(){
    this.state={
        name:tom
    }

state定义方法2 class直接定义

state={
    name:tom
}

react中修改state必须通过setState修改

this.setState({name:'111'})
//或者另一种写法
this.setState((preState)=>{
//preState是旧状态
    return {name:'222'}
})
setState({}||callback,callback)
//第二个参数是一个回调,作用获取最新的state值

合成事件的setState事件是异步的,
原生事件的setState事件是同步的
多次循环,react不会每次都调用diff算法
1.设置一个计划时间
2.在这个计划事件范围内,所有的setState操作全部放入一个队列中,统一进行处理,所谓合并setState
3.达到这个计划时间了,就执行虚拟dom生成,虚拟dom生成,diff算法比对新旧虚拟DOM得到patch补丁对象,然后重新将补丁对象渲染为真实DOM
render函数中不能直接调用setState,会栈溢出,解析时再修改死循环