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

在 React 中,有哪些方式可以把多个组件组合并嵌入到一个父组件里?请从组件嵌套、组合(children 或 props)以及容器组件等角度展开说明。

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

考察说明

考查对 React 组件组合与复用模式的理解,以及如何在实际项目中组织组件树。

回答思路

  1. 【回答框架 1】在 React 中,组件是 UI 的独立单元,组合是核心思想。最直接的方式是组件嵌套:在父组件的 JSX 中直接写入子组件标签,比如 <Parent> 中渲染 <ChildA /> 和 <ChildB />,父子通过 props 传递数据,子组件在自身文件中导出。
  2. 【回答框架 2】更灵活的是使用 children 属性,父组件在 JSX 中开放插槽,由使用方决定嵌入内容。还可以通过 props 传递整个组件或渲染函数,实现更细粒度的控制,例如 render props 模式。
  3. 【回答框架 3】还有一种方式是将多个子组件聚合到一个容器组件中,容器负责数据获取与状态管理,展示组件则通过 props 接收数据,保持展示与逻辑分离。另外,React 的 Fragment 允许返回多个根节点,便于结构编排。
  4. 【关键点 1】组合优于继承:通过组件嵌套、children 和 props 复用 UI 逻辑。
  5. 【关键点 2】children 模式:在父组件中使用 {props.children} 预留内容区域。
  6. 【关键点 3】容器组件与展示组件分离,有助于逻辑复用与可测试性。
  7. 【易错点 1】过度嵌套可能导致“属性钻取”,需考虑 Context 或状态管理。
  8. 【易错点 2】将组件定义在另一个组件内部会导致每次渲染时子组件类型变化,引发卸载重挂载,应避免。
  9. 【易错点 3】使用 children 时若内容较多,注意性能优化,必要时使用 React.memo。