在 React 中,受控组件(Controlled Component) 是指表单元素(如 <input>
、<textarea>
、<select>
等)的值由 React 的状态(state)控制,而不是由 DOM 自身管理。换句话说,表单元素的值通过 value 属性绑定到 React 的状态,并通过 onChange 事件处理函数来更新状态。
这是一个简单的受控组件示例:
function ControlledInput() {
const [value, setValue] = useState('')
const handleChange = (event) => {
setValue(event.target.value) // 更新状态
}
return (
<div>
<input
type="text"
value={value} // 绑定状态
onChange={handleChange} // 监听输入变化
/>
<p>Current value: {value}</p>
</div>
)
}
受控组件的优点:
- 完全控制表单数据:React 状态是表单数据的唯一来源,可以轻松地对数据进行验证、格式化或处理。
- 实时响应输入:可以在用户输入时实时更新 UI 或执行其他操作(如搜索建议)。
- 易于集成:与其他 React 状态和逻辑无缝集成。