Last updated on
React onChange and onInput
写 input 的时候突然在想用 onChange 还是 onInput,有啥区别
搜了下
结论是没区别,都是onInput…社区里也在吐槽这种人为造成的和标准不一致的行为
两者在原生下是有差异的 验证了下原生下的行为
https://codepen.io/sedationh/pen/PorYqaE?editors=1011
行为
- 输入 123
- 输入框失焦
- 输入 45
- 删除 45
- 输入框失焦
"handleInput: Input value changed: 1"
"handleInput: Input value changed: 12"
"handleInput: Input value changed: 123"
"handleChange: Change detected: 123"
"handleInput: Input value changed: 1234"
"handleInput: Input value changed: 12345"
"handleInput: Input value changed: 1234"
"handleInput: Input value changed: 123"
可见原生行为
- oninput 用户输入就会触发
- onchange 用户输入失焦+有差异才会触发