php建站模板,营销网站建设创意,咸鱼之王小程序,海外网站推广的公司在react中说说对受控组件和非受控组件的理解#xff1f;以及应用场景 回答思路#xff1a;说说受控组件--说说非受控组件--应用场景受控组件#xff1a;非受控组件应用场景 回答思路#xff1a;说说受控组件–说说非受控组件–应用场景
受控组件#xff… 在react中说说对受控组件和非受控组件的理解以及应用场景 回答思路说说受控组件--说说非受控组件--应用场景受控组件非受控组件应用场景 回答思路说说受控组件–说说非受控组件–应用场景
受控组件
简单来讲就是受我们控制的组件组件的状态全程响应外部数据 举例
class TestComponent extends React.Component{constructor(props){super(props);this.state {username:Tom};}render(){return input nameusername value{this.state.username}/input }
}这时候当我们在输入框输入内容时会发现输入的内容无法显示出来此时input标签是一个可读的状态因为value被this.state.username所控制当用户输入时this.state.username不会自动更新这样的话input的内容就不会发生变化了想要解除被控制可以为input标签设置onChange事件触发的时候更新state从而导致input框内容更新
非受控组件
简单来讲就是不受我们控制的组件一般情况是在初始化的时候接受外部数据然后自己在内部存储自身状态当需要时可以使用ref查询DOM并查找当前值如下
import React,{Component} form react;
export class ExampleComp extedns Component{constructor (props){super(props);this.inputRef React.createRef();}handleSubmit (e) {console.log(获取input框的值为,this.inputRef.current.value);e.preventDefault();}render(){return (form onSubmit{e this.handleSubmit(e)}input defaultValueTom ref{this.inputRef} /input typesubmit value提交 //form)}
}应用场景
大多数推荐使用受控组件来实现表单因为受控组件表单数据由React组件负责处理非受控组件控制能力弱表单数据由DOM本身处理但更加方便快捷代码量少
特征不受控组件受控组件一次性取值如提交时√√提交时验证√√即时现场验证×√有条件地禁用提交按钮×√强制输入格式×√一个数据的多个输入×√动态输入×√