react:组件之间的组合
2023-09-27 14:27:09 时间
背景
react 推荐使用组合而非继承来实现组件间的代码重用。
不推荐组件的继承
其实组合就是父子传值
例一
使用一个特殊的 children prop 来将他们的子组件传递到渲染结果中:
function FancyBorder(props) {
return (
<div className={'FancyBorder FancyBorder-' + props.color}>
{props.children}
</div>
);
}
// 组件中间的这部分传给了上面的 props.children
function WelcomeDialog() {
return (
<FancyBorder color="blue">
// 中间=======
<h1 className="Dialog-title">
Welcome
</h1>
<p className="Dialog-message">
Thank you for visiting our spacecraft!
</p>
// 中间结束======
</FancyBorder>
);
}
例二
也可以将所需内容传入 props,并使用相应的 prop。
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 元素本质就是对象(object),所以你可以把它们当作 props,像其他数据一样传递。这种方法可能使你想起别的库中“槽”(slot)的概念,但在 React 中没有“槽”这一概念的限制,你可以将任何东西作为 props 进行传递。
相关文章
- 【翻译】基于 Create React App路由4.0的异步组件加载(Code Splitting)
- 如何写出漂亮的React组件
- 对比iOS网络组件:AFNetworking VS ASIHTTPRequest
- Semantic-UI的React实现(四):基本元素组件的共通处理(父类)实现
- vue组件上绑定原生事件
- 33.Vue3:组件生命周期
- JavaWeb三大组件(Servlet,Filter,Listener 自己整理,初学者可以借鉴一下)
- 基础组件-统一响应体封装
- React Native组件、生命周期及属性传值props详解
- React--受控组件的事件合并
- uniapp将时间日期格式化的组件uni-dateformat的用法
- 编写 React 组件的最佳实践
- React笔记:组件(3)
- react.js 多个组件集成示例
- Vue和React对比学习之组件传值(Vue2 12种、Vue3 9种、React 7种)
- Vue 与 React 父子组件之间的关系
- 深入理解React 高阶组件
- vue组件($children,$refs,$parent)的使用
- React 和 ReactNative 的渲染机制/ ReactNative 与原生之间的通信 / 如何自定义封装原生组件/RN中的多线程
- React Native 文档查看组件
- React Navigation 自认比较好的navigator组件(一)
- 《React-Native系列》36、 ReactNative地图组件
- React router动态加载组件-适配器模式的应用