About React

49 阅读1分钟
高阶组件

HOC,一个函数,传入组件返回组件

书写形式:

  1. 普通形式
  2. 装饰器@decorator(xxx)
  3. 多层组合

都在什么场景下使用高阶?

  • 属性代理:
  1. 操作props
  2. 操作组件实例(通过ref)
  • 继承/劫持:
什么是React Hooks

在函数组件中使用state,副作用等

为什么不写class组件了呢?
  • 组件的状态或者逻辑复用,通常都是HOC,render props等方式来做复用的,导致层级非常的冗余
  • 有状态的组件庞大之后,变得难以拆分
  • 比如事件监听的增加和取消,这种明明是同一块业务逻辑会被分散在两个生命周期中,只能从生命周期的维度去看
hooks的优势是什么呢?

对应以上的class组件缺点

  • 自定义hook,易于业务逻辑和状态的拆分和封装,不改变组件的结构
hook的使用注意事项
  • 只能在函数组件的最外层使用(不能在条件判断,循环中使用,为什么?)
  • 副作用的依赖