前端/移动开发面试题更新 2026-08-05

你日常开发中经常使用哪些 React Hooks?请列举并说明它们的典型使用场景。

前端/移动开发技术原理React

考察说明

考查候选人对 React Hooks 核心 API 的熟悉程度及实际应用能力。

回答思路

  1. 【回答框架 1】常用 Hooks 包括 useState 管理组件内部状态,useEffect 处理副作用如数据请求、订阅或手动 DOM 操作,useContext 跨层级共享数据,useReducer 管理复杂状态逻辑,useMemo 和 useCallback 分别缓存计算结果和函数引用以优化性能,useRef 持有可变引用或访问 DOM 节点。
  2. 【回答框架 2】useState 返回状态值和更新函数,更新函数触发重新渲染;useEffect 接受回调函数和依赖数组,依赖变化时执行清理逻辑,空依赖数组表示仅挂载时执行一次,需注意闭包捕获和依赖遗漏问题。
  3. 【回答框架 3】useContext 配合 Context Provider 使用,避免逐层传递 props;useReducer 类似 Redux 的 reducer 模式,适合状态更新逻辑复杂的场景,便于测试和复用。
  4. 【回答框架 4】useMemo 和 useCallback 需要合理设置依赖数组,过量使用反而增加开销,应根据性能分析结果决定缓存时机;useRef 在渲染间保持引用稳定,改变其 current 属性不会触发重新渲染,适合存储定时器 ID 或上一次的值。
  5. 【回答框架 5】实际项目中还会用到自定义 Hooks 封装通用逻辑如表单处理、防抖、请求管理,通过组合基础 Hooks 提升代码复用性和可维护性。
  6. 【关键点 1】useState 管理基本状态,useEffect 处理副作用,useContext 实现跨层数据共享。
  7. 【关键点 2】useReducer 适合复杂状态逻辑,useMemo 和 useCallback 优化性能,useRef 访问 DOM 或保持可变引用。
  8. 【关键点 3】自定义 Hook 将逻辑抽取复用,依赖数组需正确设置以避免闭包陷阱。
  9. 【关键点 4】Hooks 必须按规则调用(顶层、函数组件内),不能条件调用。
  10. 【易错点 1】依赖数组遗漏导致闭包捕获过期值,影响数据正确性。
  11. 【易错点 2】过度使用 useMemo/useCallback 增加内存开销和渲染负担,优化效果适得其反。
  12. 【易错点 3】useEffect 中异步操作未清理,组件卸载后更新状态引发警告或内存泄漏。