React笔记——核心概念:11.组合vs继承

React组合模式强大,推荐使用组合而非继承来实现组件间代码重用。

1、包含关系

  • children prop示例:

    • <FancyBorder> JSX 标签中的所有内容都会作为一个 children prop 传递给 FancyBorder 组件。

  • 自定义props组件,类似“插槽”

    • 可以将任何东西作为props进行传递
    • <Contacts /> 和 <Chat /> 之类的 React 元素本质就是对象(object),所以你可以把它们当作 props,像其他数据一样传递

2、特例关系

  • 有时,会把一些组件看作其他组件的特殊实例
  • “特殊”组件可以通过 props 定制并渲染“一般”组件
  • WelcomeDialog 可以说是 Dialog 的特殊实例

3、组合同样适用于以class形式定义的组件

  • 示例:

组件可以接受任意 props,包括基本数据类型,React 元素以及函数。