React面试题
共 15 道题,按题目查阅参考答案、代码示例与官方资料。
- 为什么调用 setState 后,当前变量还是旧值?
理解状态快照、更新队列和函数式更新。
- useEffect 的依赖数组和清理函数应该怎么写?
把 Effect 看作与外部系统同步的过程。
- 列表中的 key 为什么不能随意使用数组下标?
理解元素身份如何影响状态保留和列表更新。
- memo、useMemo、useCallback 各自优化什么?
结合测量判断缓存的收益、依赖和维护成本。
- React 的渲染阶段与提交阶段有什么区别?
- 为什么 Hook 通常必须在组件顶层调用?
- React 中的过期闭包为什么会读到旧状态?
- Context 与 useReducer 适合管理什么状态?
- useRef、useEffect 和 useLayoutEffect 有什么差别?
- useTransition 和 useDeferredValue 能优化哪些卡顿?
- Error Boundary 和 Suspense 分别处理什么?
- 受控组件与非受控组件应该如何选择?
- useActionState 如何把异步 Action 的结果变成组件状态?
- useOptimistic 的临时状态怎样与真实结果收敛?
- useSyncExternalStore 为什么要求稳定的快照?