跳到正文
前端知识库
前端框架

react 高频追问 Q&A

A: 前者在绘制后执行,后者在绘制前同步执行。(深入阅读:useEffect 与 useLayoutEffect)

2 分钟

react 高频追问 Q&A

1. Q: useEffectuseLayoutEffect 区别?

A: 前者在绘制后执行,后者在绘制前同步执行。(深入阅读:useEffectuseLayoutEffect

2. Q: 为什么 setState 可能是异步?

A: React 会做批量更新以减少重复渲染。(深入阅读:setState 的更新与批处理机制

3. Q: key 为什么重要?

A: 帮助 Diff 准确复用节点,避免状态错位。(深入阅读:key 与节点复用

4. Q: 何时用 useMemo/useCallback

A: 当计算或引用稳定性会造成明显重复开销时。(深入阅读:useMemouseCallback 与 Hooks

5. Q: React 性能优化先看什么?

A: 渲染边界、状态粒度、是否不必要重渲染。(深入阅读:React 组件性能优化

6. Q: 受控和非受控组件怎么选?

A: 受控组件由 state 作为唯一数据源,适合联动和即时校验;简单表单或第三方 DOM 控件可以用 defaultValue + ref。更多场景见 React 面试真题补充。(深入阅读:受控组件与非受控组件

7. Q: useEffect 为什么必须清理副作用?

A: 订阅、定时器和请求若不在 cleanup 中释放,会在组件卸载或依赖变化后继续回调,造成重复更新和资源泄漏。(深入阅读:useEffect 的副作用清理

8. Q: Fiber 主要解决什么问题?

A: 把渲染拆成可调度的工作单元,允许按优先级暂停和恢复;真正的 DOM 变更集中在提交阶段。(深入阅读:React Fiber 架构

9. Q: Suspense 能自动处理所有请求错误吗?

A: 不能。它主要提供挂起期间的 loading 边界,网络失败仍需错误边界和重试逻辑。(深入阅读:懒加载、Suspense 与错误边界