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

在 React 应用中,不同组件之间通常有哪些数据传递和通信方式?请分别说明它们的适用场景。

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

考察说明

考察对 React 组件通信方式的掌握程度,包括 props、回调、Context、状态提升、ref 和第三方状态管理等。

回答思路

  1. 【回答框架 1】父组件向子组件通信主要通过 props 传递数据,子组件通过 props 回调函数向父组件传递消息,这是 React 数据流的基础,单向数据流保证了数据的可预测性。
  2. 【回答框架 2】跨层级或兄弟组件通信时,可以提升共享状态到最近的共同父组件,通过 props 和回调进行传递;对于更深的层级,可以使用 Context 或第三方状态管理库(如 Redux、Zustand、MobX)来避免 props drilling。
  3. 【回答框架 3】非父子组件间通信还可以通过事件总线(如 mitt)或 React 的 useReducer + Context 组合,但全局状态库更适合复杂的跨模块状态,事件总线更适合临时、低频的通信,注意清理监听器。
  4. 【回答框架 4】对于 React 组件与其他模块(如 DOM、外部库)的通信,可以使用 ref 或自定义事件,并结合 useEffect 进行生命周期管理。
  5. 【关键点 1】props 是 React 数据流的核心,单向数据流。
  6. 【关键点 2】状态提升是组件通信的基础模式。
  7. 【关键点 3】Context 适用于跨层级共享状态,但过度使用会增加组件耦合。
  8. 【关键点 4】第三方状态库适合复杂应用,但引入额外依赖。
  9. 【关键点 5】ref 适合命令式操作,如聚焦输入框,不用于常规数据流。
  10. 【易错点 1】过度使用 Context 会导致组件重新渲染频繁,影响性能。
  11. 【易错点 2】通过 props 逐层传递(props drilling)会让代码冗余且难维护。
  12. 【易错点 3】使用事件总线时忘记清理监听器会导致内存泄漏。