高阶函数
高阶函数:如果一个函数符合下面2个规范中的任何一个,那该两数就是高阶函数
- 若A函数,按收的参数是一个函数。那么A就可以称之为高阶函数
- 若A函数,调用它所产生的返回值依然是一个函数,那么A就可以称之为高阶函数
常见的高阶函数有:Promise、 setTimeout、arr.map() 等等
函数的柯里化:通过函数的调用,继续返回函数的方式,实现多次接受参数最后统一处理的函数编码形式。
高阶组件(High Order Component 简称 HOC)
- HOC 不是 React 提供的 API, 而是一种高级的设计模式
- HOC 是一个函数,接收组件作为参数,返回一个新组件
- 普通组件返回的是 UI,HOC 返回的是一个新组件
- HOC 不能修改参数组件,只能传入组件所需的 props
- HOC 是一个没有副作用的纯函数
- HOC 除了必须填入被包裹的组件参数以外,其余参数根据需求增加
- HOC 不关心数据如何使用,包裹组件不关心数据从哪里来(HOC 管理数据,包裹组件负责数据渲染)
- HOC 和包裏组件直接唯一的契合点就是 props
使用场景/总结:
- 前提:组件之间高度相似,可复用性强
- 对参数组件本身的逻辑状态与视图的横向切割
- 让 HOC 来完成逻辑和状态的管理