React onChange and onInput
Published on July 4, 2024
写 input 的时候突然在想用 onChange 还是 onInput,有啥区别
搜了下
结论是没区别,都是onInput...社区里也在吐槽这种人为造成的和标准不一致的行为
两者在原生下是有差异的 验证了下原生下的行为
https://codepen.io/sedationh/pen/PorYqaE?editors=1011
行为
- 输入 123
- 输入框失焦
- 输入 45
- 删除 45
- 输入框失焦
CODE"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 用户输入失焦+有差异才会触发