react:高阶组件和Render Props
2023-09-27 14:27:09 时间
高阶组件
- HOC 自身不是 React API 的一部分,它是一种基于 React 的组合特性而形成的设计模式。
- 高阶组件是参数为组件,返回值为新组件的函数。组件是将 props 转换为 UI,而高阶组件是将组件转换为另一个组件。
基本用法
const HOCFactory = (Component) => {
class HOC extends React.component {
// 在此定义多个组件的公共逻辑
render () {
return <Component {...this.props} />
}
}
return HOC
}
const EnhancedComponent1 = HOCFactory(WrappedComponent1)
const EnhancedComponent2 = HOCFactory(WrappedComponent2)
redux 中 connect 是高阶组件
Render Props
和高阶组件正相反,高阶组件是高阶组件包着传入的组件。
Render Props则是指一种在 React 组件之间使用一个值为函数的 prop 共享代码的技术
<DataProvider render={data => (
<h1>Hello {data.target}</h1>
)}/>
具有 render prop 的组件接受一个返回 React 元素的函数,并在组件内部通过调用此函数来实现自己的渲染逻辑。(告诉这个组件你要怎么渲染)
比较
HOC:模式简单,但是会增加组件层级
Render Props:代码简洁,学习成本较高
按需使用
相关文章
- vue3 获取组件实例 $ref方法踩坑 getCurrentInstance()
- React 高阶组件HOC
- jQuery WeUI 组件下拉刷新和滚动加载的实现
- React和Vue组件间数据传递demo
- React--受控组件的事件合并
- PyQt(Python+Qt)学习随笔:Qt Designer组件属性编辑界面中对话窗QDialog的sizeGripEnabled属性
- layui弹窗组件layer之layer.msg提示框学习
- Xamarin动作组件Crack,iOS和Android在C#和.NET
- 使用Broadcast实现android组件之间的通信 分类: android 学习笔记 2015-07-09 14:16 110人阅读 评论(0) 收藏
- 【Spark 深入学习 -09】Spark生态组件及Master节点HA
- ES 6 装饰器与 React 高阶组件
- React Native组件之FlatList
- react-native动态姿态tab组件
- react-native制作新手引导组件
- 利用react-redux实现react组件数据之间数据共享