是什么
@H_301_3@高阶组件是一个函数,能够接受一个组件并返回一个新的组件。没有任何副作用。@H_301_3@
为什么用
@H_301_3@封装并抽离组件的通用逻辑,让此部分逻辑在组件间更好地被复用。@H_301_3@
如何用
@H_301_3@如何实现
@H_301_3@下面的例子是最简单的一个实现 @H_301_3@
显示名称
render() {
return
}
}
}
function getDisplayName(Component) {
return Component.displayName || Component.name || "Component"
}
作用:操作prop,refs获取组件实例 @H_301_3@
注意事项:静态方法无法传递,必须手动复制;refs无法传递。@H_301_3@
反向继承
@H_301_3@下面的例子是最简单的一个实现@H_301_3@
作用: 操作state;渲染劫持(操作它的render函数) @H_301_3@
注意事项:通过继承ImportComponent,除了一些静态方法,包括生命周期,state,各种function,我们都可以得到。@H_301_3@