面试题答案
一键面试- 批量事件更新机制:
- 在React中,当处于合成事件(如
click
事件)或者生命周期函数内时,React会将多个setState
(在函数式组件中是useState
的setX
方法)调用进行批量处理。 - 它会维护一个队列,将这些状态更新操作依次放入队列中。然后在合适的时机,React会从队列中取出这些更新,合并后一次性应用到组件的状态上,而不是每调用一次
setState
/setX
就立即更新状态并重新渲染视图。
- 在React中,当处于合成事件(如
- 最终视图更新次数:
- 在上述
handleClick
函数中,最终视图只会更新一次。
- 在上述
- 原理:
- React将
setCount(count => count + 1);
和setName('newName');
这两个状态更新操作都放入状态更新队列。 - 当
handleClick
函数执行完毕,React检测到事件处理函数执行结束,会从队列中取出这两个更新。 - 对于
useState
的更新,React会将新的状态值与当前状态合并(这里count
是通过回调函数count => count + 1
计算新值,name
直接设置为'newName'
)。 - 然后React会根据合并后的新状态,一次性触发组件的重新渲染,从而更新视图,所以最终视图只更新一次。
- React将