当前位置: 首页 > news >正文

何为受控组件(controlledcomponent) ?

“受控组件 (Controlled Component)” 是 React 中表单处理的一个核心概念。

定义

受控组件:指那些表单输入值由 React 组件的 state 控制的组件。

也就是说:

  • 表单控件的 显示值(value) 来自组件的 state;

  • 当用户输入时,通过 onChange 事件 更新 state;

  • 组件的 state → 控件的值,形成了单向数据流。

通俗理解

你可以理解成:

React “接管”了输入框的值。
输入框的内容不再由浏览器自己管理,而是由 React 的 state 管理。

示例对比

受控组件
function Form() {const [name, setName] = React.useState('');const handleChange = (e) => setName(e.target.value);const handleSubmit = (e) => {e.preventDefault();alert('提交的名字是:' + name);};return (<form onSubmit={handleSubmit}><input value={name} onChange={handleChange} /><button type="submit">提交</button></form>);
}
  • 输入框的值 value={name} 由 React 的 state 控制;

  • 用户输入时触发 onChange 更新 state;

  • React 永远知道输入框里是什么。

非受控组件(Uncontrolled Component)
function Form() {const inputRef = React.useRef();const handleSubmit = (e) => {e.preventDefault();alert('提交的名字是:' + inputRef.current.value);};return (<form onSubmit={handleSubmit}><input ref={inputRef} /><button type="submit">提交</button></form>);
}
  • 表单的值由 DOM 自己维护;

  • React 只是“读取”这个值;

  • React 不知道实时的输入变化。

对比总结

对比项 受控组件 非受控组件
数据来源 React state DOM 自身
取值方式 通过 state 通过 ref
监听变化 onChange 更新 state 不一定监听
适用场景 数据同步、校验、动态表单 简单场景、第三方库
优点 数据可控、便于校验 更接近原生
缺点 代码略多,需写 onChange React 不知道值的变化

一句话总结

受控组件 = 表单输入受 React state 控制的组件。
React 的 state 是“唯一数据源”。

http://www.hskmm.com/?act=detail&tid=39880

相关文章:

  • uniapp实现上拉加载、下拉刷新
  • [背包] CF730J Bottles 题解
  • 20232426 2025-2026-1 《网络与系统攻防技术》实验三实验报告
  • 每天浪费 5 分钟杀端口?我开发了一个工具终结这种痛苦
  • Day5表单—下拉菜单与文本域
  • 2025 年验厂咨询机构最新推荐榜,技术实力与市场口碑深度解析,助力企业突破国际贸易壁垒
  • 2025 年减速机厂家最新推荐榜,技术实力与市场口碑深度解析行星/直角换向器/中空旋转平台减速机厂家推荐
  • 2025年深圳离婚律师事务所权威推荐榜单:房产分割/婚姻/离婚房产专业律师精选
  • 干掉 Chrome,Comet AI 浏览器杀疯了!!
  • panic: protobuf tag not enough fields
  • 2025 年连接器厂家最新推荐榜:优质品牌全方位解析,含 M8/M12 / 防水等品类测评结果
  • 2025 年压缩机厂家最新推荐榜,聚焦企业技术创新能力与市场服务口碑深度解析医药冷冻压缩机/医疗冷冻压缩机/食品冷冻压缩机厂家推荐
  • 恒压恒流模式的工作原理及直流电源的应用
  • 【2025-10-24】连岳摘抄
  • 2025 年风机电机厂家最新推荐榜,技术实力与市场口碑深度解析及优质品牌筛选 直流无刷移动风机电机/交直流吹地机风机电机厂家推荐
  • 2025 年关节电机厂家最新推荐榜,深度解析品牌技术实力与市场口碑,挖掘高性能可靠产品
  • 2025年深圳子女抚养权律师权威推荐榜单:婚姻/股权分割/离婚房产专业律师精选
  • 从Palantir本体论,看驱动智能(Data for AI)的下一代数据架构
  • VonaJS AOP编程大杀器:外部切面
  • 2025 年最新推荐!钢结构防火涂料厂家排行榜:膨胀型 / 非膨胀型 / 室内外 / 超薄型 / 厚型防火涂料精选
  • 基于Java+Springboot+Vue开发的婚恋交友网站管理系统源码+运行步骤
  • 2025年深圳股权分割律师权威推荐榜单:婚姻/子女抚养权/离婚房产专业律师团队精选
  • 2025 年最新推荐三维扫描仪厂家权威排行榜:聚焦行业优质品牌,精选助力用户精准选购
  • 选择电流探头时是看峰峰值还是最大值?
  • 案例解析:养老服务标杆吉宝欣岳年借助纷享销客CRM实现数字化转型升级
  • CentOS7将yum源更换为国内源保姆级教程
  • 20232407 2025-2026-1 《网络与系统攻防技术》 实验三实验报告
  • 20232325 2025-2026-1 《网络与系统攻防技术》实验三实验报告
  • centos7通过阿里云的镜像站安装最新的docker服务
  • 2025年计算机技术、数字媒体与传播国际学术会议(ICCDC 2025)