04 Mar 2021 844字 3分 表单
- 非受控表单
- 表单的值不受state控制,与state没有任何关系
- react建议,尽量不要使用非受控表单
- input[type=’file’],是一个例外
- 受控表单
- 表单的值(value/checked),完全由state控制
- 在react中,除文件上传外,其他表单都要使用受控表单
- 使用受控表单,value/checked和onChange成对出现,缺一不可
- react 是单向数据绑定的
- 当state声明式变量发生变化,视图自动更新
- 当视图发生变化,state声明式变量不会同步更新,只能依靠手动取值、更新state
- 对于单选按钮/复选按钮
- name属性,用于把多个单选按钮变成一组,产生 单选联动效果
- value属性,在react中它不用于受控,它只是单选按钮的值,用于e.target.value
- value属性,在react中它不用于受控,它只是单选按钮的值,用于e.target.value
生命周期函数
- 常见生命周期:挂载阶段(3个)、更新阶段(2个)、销毁阶段(1个)
- 挂载阶段:constructor(),组件类的构造器、render()、componentDidMount()
- 更新阶段:render()、componentDidUpdate()
- 销毁阶段:componentWillUnmount()
- 详细生命周期:
- 挂载
- constructor() 初始化组件状态,可以给一些事件函数绑定this,不能再内部使用setState
- static getDerivedStateFromProps()
- render()
- componentDidMount()
- 更新
- static getDerivedStateFromProps()
- shouldComponentUpdate()
- render()
- getSnapshotBeforeUpdate()
- componentDidUpdate()
- 卸载(销毁)
状态提升
- 多个组件需要反映相同的数据变化,这时我们建议将共享状态提升到最近的共同父组件中去