请解释 React 中的 Error Boundaries 是什么,并说明它的主要用途。
考察说明
考查对 React 错误边界机制的理解及其在组件树中的作用。
回答思路
- 【回答框架 1】Error Boundaries 是 React 组件,用于捕获其子组件树在渲染、生命周期方法和构造函数中抛出的 JavaScript 错误,并展示备用 UI,避免整个应用崩溃。
- 【回答框架 2】它通过实现 componentDidCatch 或静态 getDerivedStateFromError 生命周期方法来捕获错误,前者用于记录错误信息,后者用于更新状态以渲染降级 UI。
- 【回答框架 3】Error Boundaries 只能捕获子组件树中的错误,无法捕获自身错误、事件处理器、异步代码(如 setTimeout 或 Promise)以及服务端渲染中的错误。
- 【回答框架 4】使用场景包括将页面拆分为多个独立区域,每个区域用 Error Boundary 包裹,确保局部错误不会影响整体应用,提升用户体验和可维护性。
- 【回答框架 5】在 React 16 及之后版本中,Error Boundaries 是官方推荐的错误处理方式,替代了之前可能导致组件树卸载的未捕获错误行为。
- 【关键点 1】Error Boundaries 是类组件,通过 componentDidCatch 或 getDerivedStateFromError 捕获子组件错误。
- 【关键点 2】只能捕获渲染、生命周期和构造函数中的错误,不处理事件和异步错误。
- 【关键点 3】用于隔离错误,展示备用 UI,防止整个应用白屏。
- 【关键点 4】React 16 引入,是官方错误处理机制。
- 【易错点 1】不能捕获自身错误,需在父级包裹。
- 【易错点 2】事件处理器和异步代码中的错误需单独 try-catch 处理。
- 【易错点 3】Error Boundaries 本身不能是函数组件,必须是类组件。