多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
1. ### 什么是高阶组件(HOC)? *高阶组件*(*HOC*) 就是一个函数,且该函数接受一个组件作为参数,并返回一个新的组件,它只是一种模式,这种模式是由`react`自身的组合性质必然产生的。 我们将它们称为**纯组件**,因为它们可以接受任何动态提供的子组件,但它们不会修改或复制其输入组件中的任何行为。 ~~~js const EnhancedComponent = higherOrderComponent(WrappedComponent) ~~~ HOC 有很多用例: 1. 代码复用,逻辑抽象化 2. 渲染劫持 3. 抽象化和操作状态(`state`) 4. 操作属性(`props`) > 译注:更详细用法请参考[高阶组件的使用](https://react.docschina.org/docs/higher-order-components.html) 2. ### 如何为高阶组件创建属性代理? 你可以使用*属性代理*模式向输入组件增加或编辑属性(props): ~~~js function HOC(WrappedComponent) { return class Test extends Component { render() { const newProps = { title: 'New Header', footer: false, showFeatureX: false, showFeatureY: true }; return <WrappedComponent {...this.props} {...newProps} /> } } } ~~~