在react
中,hooks
是一个非常抽象的概念,对初学者,往往不是很友好,比较一下React
中hooks
的优缺点
优点
[1]. 代码的可读性强,使用hooks
之前,发布/订阅自定义事件需要挂载到componentDidMount
生命周期上面,然后需要在componentWillUnmount
生命周期中清除,在使用hooks
之后,通过useEffect
,可以把componentDidMount
生命周期,componentDidUpdate
生命周期,还有componentWillUnmount
生命周期集中在一起,方便代码的维护
[2]. 组件的层级更浅,在使用hooks
之前,通常使用高阶组件Hoc
的方法来实现多个组件共用状态,增强组件的功能,这样是增加了组件渲染的开销,影响了性能,但是在Hooks
中可以使用自定义hooks
组件useXXx()
的方法将多个组件之间共用的状态放到自定义hooks
就可以轻松的做到状态的共享
[3]. 不用在考虑class
类组件this
的指向问题了,在hooks
组件中不需要使用this.state
来获取数据和方法了