原生JS与React框架onChange事件的不同

原生JS:

onchange - 在输入期间不会被调用,在失去焦点且失去焦点时的value与获得焦点时的value不一致(输入内容有变化)的时候才会被调用。原生的onchange当失去焦点时才会去判断input内的值。
 

React:

onChange - 在用户持续输入的时候触发,不在失去获取或者失去焦点的时候触发。
 

原理:

网上查了好久,发现两个答案,不太懂哪个是正确的:
  1. react 的 onChange 伴随着state的改变,而state的改变会即时的渲染页面,所以input即时更新。
  2. React传给你的不是浏览器原生事件 (一般是DOM level 2或3), 而是为消除浏览器的差异自己定义的一套(SyntheticEvent)。

    比较保守地想,可以认为是两套仅是名字差不多的事件。

 
posted @ 2021-09-08 11:22  leah-xx  阅读(326)  评论(0编辑  收藏  举报