react 中 Class Component存在的问题
1: 组件复用困局
为了解决组件复用,react团队给出过很多方案,render props HOC,
然而这两种方案,均有缺点:
HOC
- 嵌套地狱,每一次HOC调用都会产生一个组件实例
- 可以使用类装饰器缓解组件嵌套带来的可维护性问题,但装饰器本质上还是HOC
- 包裹太多层级之后,可能会带来props属性的覆盖问题
render props
- 这个方案比HOC,数据流更直观。
- 但本质上Render Props是基于闭包实现的,大量地用于组件的复用将不可避免地引入了callback hell问题
2: Javascript Class的缺陷
this指向问题
稍有不慎,就有this指向问题
编译size问题
因此react团队推出了react hooks
参考文章:这里