组合 vs 继承
Composition vs Inheritance
React 有十分强大的组合模式,我们推荐使用组合而非继承来实现组件间的代码重用
包含关系
有些组件无法提前知晓它们子组件的具体内容。比如说侧边栏 sidebar 和 对话框 Dialog 等展现通用容器的组件中特别容易遇到这种情况
```jsx harmony
function FancyBorder(props) { return ( {props.children} ) }
* 这使得别的组件可以通过 JSX 嵌套,将任意组件作为子组件传递给他们
* 少数情况下,你可能需要一个组件中预留出几个 洞,这种情况下,我们可以不适用 children 而是自行约定:将所需的内容传入 props 并使用相应的 prop
```jsx harmony
function SplitPane(props) {
return (
<div className="SplitPane">
<div className="SplitPane-left">
{props.left}
</div>
<div className="SplitPane-right">
{props.right}
</div>
</div>
);
}
function App() {
return (
<SplitPane
left={
<Contacts />
}
right={
<Chat />
} />
);
}
这里面的 Contacts 和 Chat 之类的 React 元素本质就是对象,所以你可以把它们当作 props,你可以将任何东西作为 props 进行传递
最后更新于
这有帮助吗?