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

请解释 React 中 useEffect 的含义,并阐述它在函数组件中承担哪些职责?

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

考察说明

考察对 React Hooks 中副作用处理机制的理解,以及在实际开发中的应用。

回答思路

  1. 【回答框架 1】useEffect 是 React 提供的 Hook,用于在函数组件中执行副作用操作。副作用指组件渲染之外的影响,如数据获取、订阅、手动修改 DOM 等。
  2. 【回答框架 2】它接受两个参数:回调函数和依赖数组。回调函数在组件挂载或依赖项变化后执行,返回的清理函数在组件卸载或依赖项下次变化前调用,用于清除副作用,避免内存泄漏。
  3. 【回答框架 3】依赖数组控制执行时机:空数组表示仅挂载时执行;省略则每次渲染后执行;包含具体值时,只有这些值变化才执行。清理函数是 useEffect 的关键特性,确保重复执行时正确清理旧副作用。
  4. 【回答框架 4】常见用途包括异步数据请求、事件监听、定时器管理、状态同步等。使用时需注意避免无依赖导致的频繁渲染,以及闭包捕获过时值问题。
  5. 【关键点 1】useEffect 用于在函数组件中执行副作用,替代生命周期方法。
  6. 【关键点 2】返回值用于清理副作用,如取消订阅、清除定时器。
  7. 【关键点 3】依赖数组决定执行时机和频率,空数组表示仅挂载时执行。
  8. 【关键点 4】使用时需避免产生不必要的渲染或闭包陷阱。
  9. 【易错点 1】忘记提供清理函数,可能导致内存泄漏或重复订阅。
  10. 【易错点 2】依赖数组处理不当,如遗漏依赖导致闭包捕获旧值。
  11. 【易错点 3】过度依赖 useEffect 进行状态同步,可能引发性能问题。