美文网首页
HOC - High Order Component 高阶组件

HOC - High Order Component 高阶组件

作者: 早期的虫儿 | 来源:发表于2017-10-24 21:04 被阅读0次
  • 高阶函数

简而言之,可以接收函数作为参数的函数就是一个高阶函数。

 var hoc = function(func){
       ...
       return func();
 }

上面的hoc函数就是一个高阶函数。

  • 高阶组件

高阶组件是React中的一个概念,类似于高阶函数。
Concretely, a higher-order component is a function that takes a component and returns a new component. (高阶组件是一个函数,该函数接收一个组件作为参数,并且返回一个封装之后的组件)

const EnhancedComponent = higherOrderComponent(WrappedComponent);

上面的higherOrderComponent 接收组件WrappedComponent作为参数,并且返回一个新的封装之后的组件,这样的组件就称之为高阶组件。

class WrappedComponent extends React.Component {
  render() {
    return (
      <div>
        WrappedComponent
      </div>
    );
  }
}

const HighOerderComponent = (WrappedComponent) => {
  class HOComponent extends React.Component {
    render() {
      return (
        <div>
          <WrappedComponent {...this.props} />
        </div>
      );
    }
  }
  return HOComponent;
}
  • 注意事项:
  • 不要在render方法中使用HOC
    因为React使用dif算法来判断是否重新渲染组件,如果在render中生成HOC,那么这个HOC每次都会生成一个新的,在performance上会造成一定的影响,HOC的创建操作应该放在组件的生命周期函数或者构造函数中去。
  • copy组件的静态方法到HOC中
    有时候使用一些静态方法有助于更方便的去构造一个组件,但是如果使用了HOC,那么就需要将组件的静态方法copy到HOC中去,推荐使用React提供的 hoistNonReactStatic 去copy组件的静态方法。
  • 不要使用refs去操作html元素
    refs 可以用来引用一个原生的html元素,得到html元素之后,就可以按照传统的操作html元素的方式对该组件进行操作,但是在React中应该尽量避免使用这种方式去操作Dom元素。

相关文章

  • React 高阶组件(8)

    高阶组件 High Order Component HOC 是一种高级的设计模式 HOC 是一个函数,接收一个组件...

  • React HOC的两种实践

    HOC简介 HOC全称为High Order Component即高阶组件, 其使用姿势通常有两种: 属性代理(P...

  • HOC - High Order Component 高阶组件

    高阶函数 简而言之,可以接收函数作为参数的函数就是一个高阶函数。 上面的hoc函数就是一个高阶函数。 高阶组件 高...

  • 高阶组件

    React 高阶组件HOC (Higher-Order Component) 高阶组件是react中重复使用组件逻...

  • React进阶篇(一)高阶组件

    高阶组件 高阶组件(Higher Order Component,HOC)是React的一种设计模式,用于增强现有...

  • React之高阶组件

    概述: 高阶组件(Higher Order Component,简称:HOC)是 React 中用于复用组件逻辑的...

  • 高阶组件

    higher-order-component (高阶组件HOC)类似于高阶函数,它接受一个React组件作为参数,...

  • React 高阶组件(HOC)

    什么是高阶组件? 高阶组件(Higher-Order Components,简称HOC):简而言之,高阶组件就是加...

  • React高阶组件(HOC)

    高阶组件(Higher-Order Components) 高阶组件(HOC)是 React 中用于重用组件逻辑的...

  • React高阶组件和组件复用

    高阶组件-HOC (Hight-Order-Components) react中用于复用组件逻辑的一种高级技巧(设...

网友评论

      本文标题:HOC - High Order Component 高阶组件

      本文链接:https://www.haomeiwen.com/subject/hzfzuxtx.html