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

在 React 中,isMounted 函数是做什么用的?请解释其功能及使用场景。

前端/移动开发技术原理方案权衡React

考察说明

考查对 React 生命周期及废弃 API 的理解。

回答思路

  1. 【回答框架 1】isMounted 是 React 组件实例上的方法,用于判断组件是否已挂载到 DOM 中。在组件挂载后调用返回 true,卸载后返回 false。它通常用于异步操作(如网络请求)回调中,避免在组件卸载后调用 setState 导致内存泄漏或警告。
  2. 【回答框架 2】该 API 在 React 16.9 版本中被标记为废弃,并在 React 17 中移除。原因是它容易导致逻辑混乱,且无法完全解决异步竞态问题。推荐的替代方案包括使用标志变量(如 this._isMounted)或使用 AbortController 取消请求。
  3. 【回答框架 3】现代 React 中,更推荐使用 useEffect 的清理函数来管理异步操作,或者在组件卸载时进行状态标记,从而安全地更新状态。
  4. 【关键点 1】isMounted 用于判断组件是否已挂载。
  5. 【关键点 2】该 API 已废弃,不应在新代码中使用。
  6. 【关键点 3】替代方案:使用 useEffect 清理或 AbortController。
  7. 【关键点 4】避免在卸载后调用 setState。
  8. 【易错点 1】误以为 isMounted 可以解决所有异步问题,实际存在竞态条件。
  9. 【易错点 2】依赖已废弃 API 可能导致未来版本不兼容。