生命周期 DforDream

表单

  1. 非受控表单
    • 表单的值不受state控制,与state没有任何关系
    • react建议,尽量不要使用非受控表单
    • input[type=’file’],是一个例外
  2. 受控表单
    • 表单的值(value/checked),完全由state控制
    • 在react中,除文件上传外,其他表单都要使用受控表单
    • 使用受控表单,value/checked和onChange成对出现,缺一不可
  3. react 是单向数据绑定的
    • 当state声明式变量发生变化,视图自动更新
    • 当视图发生变化,state声明式变量不会同步更新,只能依靠手动取值、更新state
  4. 对于单选按钮/复选按钮
    • name属性,用于把多个单选按钮变成一组,产生 单选联动效果
    • value属性,在react中它不用于受控,它只是单选按钮的值,用于e.target.value
    • value属性,在react中它不用于受控,它只是单选按钮的值,用于e.target.value

生命周期函数

  1. 常见生命周期:挂载阶段(3个)、更新阶段(2个)、销毁阶段(1个)
    • 挂载阶段:constructor(),组件类的构造器、render()、componentDidMount()
    • 更新阶段:render()、componentDidUpdate()
    • 销毁阶段:componentWillUnmount()
  2. 详细生命周期:
    • 挂载
      • constructor() 初始化组件状态,可以给一些事件函数绑定this,不能再内部使用setState
      • static getDerivedStateFromProps()
      • render()
      • componentDidMount()
    • 更新
      • static getDerivedStateFromProps()
      • shouldComponentUpdate()
      • render()
      • getSnapshotBeforeUpdate()
      • componentDidUpdate()
    • 卸载(销毁)
      • componentWillUnmount()

状态提升

  1. 多个组件需要反映相同的数据变化,这时我们建议将共享状态提升到最近的共同父组件中去