今天看啥  ›  专栏  ›  神光的编程秘籍

你用受控模式写组件?图啥呢?

神光的编程秘籍  · 公众号  ·  · 2024-04-30 00:05
前端开发经常会涉及表单的处理,或者其他一些用于输入的组件,比如日历组件。涉及到输入,就绕不开受控模式和非受控模式的概念。什么是受控,什么是非受控呢?想一下,改变表单值只有两种情况:用户去改变 value 或者代码去改变 value。如果不能通过代码改表单值 value,那就是非受控,也就是不受我们控制。但是代码可以给表单设置初始值 defaultValue。代码设置表单的初始 value,但是能改变 value 的只有用户,代码通过监听 onChange 来拿到最新的值,或者通过 ref 拿到 dom 之后读取 value。这种就是非受控模式。反过来,代码可以改变表单的 value,就是受控模式。注意,value 和 defaultValue 不一样:defaultValue 会作为 value 的初始值,后面用户改变的是 value。而一旦你给 input 设置了 value,那用户就不能修改它了,可以输入触发 onChange 事件,但是表单的 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照