原生JS与React框架onChange事件的不同
原生JS:
onchange - 在输入期间不会被调用,在失去焦点且失去焦点时的value与获得焦点时的value不一致(输入内容有变化)的时候才会被调用。原生的onchange当失去焦点时才会去判断input内的值。
React:
onChange - 在用户持续输入的时候触发,不在失去获取或者失去焦点的时候触发。
原理:
网上查了好久,发现两个答案,不太懂哪个是正确的:
- react 的 onChange 伴随着state的改变,而state的改变会即时的渲染页面,所以input即时更新。
-
React传给你的不是浏览器原生事件 (一般是DOM level 2或3), 而是为消除浏览器的差异自己定义的一套(
SyntheticEvent
)。比较保守地想,可以认为是两套仅是名字差不多的事件。