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

请描述在 React 应用中采用 Context API 进行数据传递的具体使用方式。

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

考察说明

考查对 React Context API 基本概念和用法的掌握程度。

回答思路

  1. 【回答框架 1】Context API 是 React 官方提供的跨组件层级传递数据的方案,无需逐层传递 props,适用于全局主题、登录状态等场景。
  2. 【回答框架 2】使用步骤包括:通过 createContext 创建上下文对象,在组件顶层使用 Provider 提供 value,在子组件中通过 useContext 或 Consumer 消费数据。
  3. 【回答框架 3】Provider 的 value 变化时,所有消费该 Context 的组件会重新渲染,无论是否使用 memo 优化。
  4. 【回答框架 4】为避免不必要的渲染,可将 value 用 useMemo 包裹,或拆分 Context 以减少更新范围。
  5. 【回答框架 5】对于频繁更新的全局状态,Context 可能不是最优选择,可考虑配合 useReducer 或第三方状态管理库。
  6. 【关键点 1】创建:const MyContext = React.createContext(defaultValue);
  7. 【关键点 2】提供:<MyContext.Provider value={...}> 包裹子组件。
  8. 【关键点 3】消费:函数组件使用 useContext(MyContext),类组件使用 Consumer 或 contextType。
  9. 【易错点 1】Provider 的 value 每次 render 都会生成新对象,导致所有消费者重渲染,需使用 useMemo 优化。
  10. 【易错点 2】在没有 Provider 时会使用 createContext 的默认值,而不是 undefined。
  11. 【易错点 3】Context 不适合用于避免所有重渲染,应谨慎选择使用场景。