受控组件 和 非受控组件

概览

文章内容选自陈屹的《深入React技术栈》,本文的主题是介绍受控组件与非受控组件。

内容

1、受控组件(React官方推荐)

维护者:使用者
表单元素中,每当表单的状态发生变化时,需要 写入组件的state ,组件渲染出的状态与它的 value 或 checked prop 相对应。

2、非受控组件(React反模式)

维护者:dom 自身
表单元素中,通过 defaultValue 或者 defaultChecked 来设置表单的默认值,仅会被渲染一次 ,在后续的渲染中并不起作用。

补充:值不受组件自身的 state 或 props 控制, 通过 添加 ref prop 来访问渲染后的底层 DOM 元素。

3、对比受控组件与非受控组件

最大区别:非受控组件的状态并不会受应用状态的控制,而受控组件的值来源于组件的状态。

1、性能问题:
受控组件:每当表单的值发生变化时,会调用一次 onchange 事件处理器,会产生性能消耗。

2、 事件绑定:
受控组件:需要绑定 change 事件,并且需要定义一个事件处理器来同步 表单值 和 组件 的状态。

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容