1、参数为组件,返回值新组件的函数
2、HOC通过将组件包装在容器组件中来组成新的组件。并且其为纯函数,没有副作用
3、不要试图改变原始组件,使用组合
更改原型,不利于组件的复用性
4、约定:将不相关的props传递给被包裹组件
HOC 应该透传与自身无关的 props,减少组件的更改,增加HOC的灵活性和可复用性
5、约定:最大化可组合性
6、请勿复制静态方法
当HOC应用于组件时,原始组件将使用容器进行包装,新组建没有原始组件的任何静态方法
7、在HOC中ref不会被传递
如果将ref添加到HOC的返回组件中,则ref引用指向容器组件,而不是被包装组件。
React.forwardRef进行封装组件