第二部分:React进阶
系列文章目录
第一章:React从入门到进阶之初识React
第一章:React从入门到进阶之JSX简介
第三章:React从入门到进阶之元素渲染
第四章:React从入门到进阶之JSX虚拟DOM渲染为真实DOM的原理和步骤
第五章:React从入门到进阶之组件化开发及Props属性传值
第六章:React从入门到进阶之state及组件的生命周期
第七章:React从入门到进阶之React事件处理
第八章:React从入门到进阶之React条件渲染
第九章:React从入门到进阶之React中的列表与key
第十章:React从入门到进阶之表单及受控组件和非受控组件
第十一章:React从入门到进阶之组件的状态提升
第十二章:React从入门到进阶之组件的组合使用
第十三章:React从入门到进阶之组件的组件的懒加载及上下文Context
第十四章:React从入门到进阶之Refs&DOM以及Refs转发
第十五章:React从入门到进阶之高阶组件
高阶组件定义
- 高阶组件(Higher Order Component,简称:HOC)是React中用于复用组件逻辑的一种高级技巧。HOC自身并不是React API的一部分,它是一种基于React的组合特性而形成的设计模式
- 简单而言:高阶组件就是一个把组件作为参数,并且返回一个新组件的函数。例如:
//WrappedComponent:参数是一个组件
function higherOrderComponent(WrappedComponent){
//返回一个新的组件
return class extends React.Component{
render(){
return <WrappedComponent .../>
}
}
}
- React 中组件是将props转换为UI,而高阶组件则是将组件转换为一个新的组件。高阶组件在第三方库中很常见,比如Redux中的connect和Relay中的createFragmentContainer
- 接下来我们来看一下,为什么要使用高阶组件以及如何使用高阶组件
为什么要使用高阶组件
我们先来看一个案例,假如:现在有一个博客系统,其中有一个博客帖子组件BlogPost和对应博客的评论组件,这两个组件都是通过订阅外部数据源来渲染数据。
//博客帖子组件
class BlogPost extends React.Component {
constructor(props){
super(props);
this.state = {
// 假设 “DataSource”是一个全局数据源变量
blogPost: DataSource.getBlogPost(props.id);
}
}
componentDidMount(){
//组件渲染完成后订阅更改
DataSource.addChangeListener(this.handleChange);
}
componentWillUnMount(){
//组件卸载前移除订阅
DataSource.removeChangeListener

本文介绍了React中的高阶组件(HOC),它是一种复用组件逻辑的高级技巧。高阶组件是接收组件作为参数并返回新组件的函数,常用于数据订阅和状态管理。文章详细解释了为何使用HOC,如何创建和使用HOC,以及使用HOC的三大约定。通过实例展示了如何通过HOC减少代码冗余,提高代码复用性。
最低0.47元/天 解锁文章
5580

被折叠的 条评论
为什么被折叠?



