react 高阶组件

higher-order 这个单词相信各位开发者都很熟悉,higher-order function(高阶函数)在函数式 编程中是一个基本的概念,它描述的是这样一种函数:这种函数接受函数作为输入,或是输出一 个函数。比如,常用的工具方法 map、reduce 和 sort 等都是高阶函数。

高阶组件

高阶组件(higher-order component),类似于高阶函数,它接受 React 组件作为输入,输出一 个新的 React 组件。我们用 Haskell 的函数签名来表达,那就是:

  • hocFactory:: W: React.Component => E: React.Component
    用通俗的语言解释就是,当 React 组件被包裹时(wrapped),高阶组件会返回一个增强 (enhanced)的 React 组件。可以想象,高阶组件让我们的代码更具有复用性、逻辑性与抽象特性。它可以对 render 方法作劫持,也可以控制 props 与 state。