作者回复: 这么说吧 <input onclick="dosomething"/> 这样的原生节点,onclick 每次给一个新值,也只是属性的更新而已。对于 div,因为它的 children 不是 react 去控制的,所以属性变化也就只是属性变化,不会影响 dom diff。
作者回复: 比如 <Form onChange={onChange}>...</Form> ,这个 Form 组件会根据 onChange 是否变化来决定是否重新 render。useCallback 可以让 onChange 在多次渲染之间不变,避免 Form 组件的重新渲染。