React中什么是受控组件和⾮控组件?

受控组件是React中表单处理的一种方式,通过onChange事件管理状态,确保组件状态可控。非受控组件则使用ref直接从DOM获取表单值,简化代码。官方推荐使用受控组件,但在某些场景下非受控组件更灵活。
摘要由CSDN通过智能技术生成

(1)受控组件 在使⽤表单来收集⽤户输⼊时,例如 等元素都要绑定 ⼀个change事件,当表单的状态发⽣变化,就会触发onChange事件,更新组件的state。这种组件在 React中被称为受控组件,在受控组件中,组件渲染出的状态与它的value或checked属性相对应, react通过这种⽅式消除了组件的局部状态,使整个状态可控。react官⽅推荐使⽤受控表单组件。 受控组件更新state的流程: 可以通过初始state中设置表单的默认值 每当表单的值发⽣变化时,调⽤onChange事件处理器 事件处理器通过事件对象e拿到改变后的状态,并更新组件的state ⼀旦通过setState⽅法更新state,就会触发视图的重新渲染,完成表单组件的更新 受控组件缺陷: 表单元素的值都是由React组件进⾏管理,当有多个输⼊框,或者多个这种组件时,如 果想同时获取到全部的值就必须每个都要编写事件处理函数,这会让代码看着很臃肿,所以为了解决这种 情况,出现了⾮受控组件。

(2)⾮受控组件 如果⼀个表单组件没有value props(单选和复选按钮对应的是checked props) 时,就可以称为⾮受控组件。在⾮受控组件中,可以使⽤⼀个ref来从DOM获得表单值。⽽不是为每个状 态更新编写⼀个事件处理程序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值