一、自定义hooks的意义:
(1)将多个组件都要用到的逻辑相同的功能片段,单独封成一个单函函数来使用,这个函数必须以use命名开头,这样react才认识它是自定义hooks函数,还是组件?
(2)自定义函数定位偏向实现功能,而组件偏向于界面和业务逻辑。
(3) React内置的hooks函数解决了函数组件无法使用state,以及传统写法中生命周期函数混乱和this指向的问题,但没有解决组件复用性的提升。
(4) 组件复用的提升是由自定义hooks来体现的,以往传统的组件复用大多数是采用props render和HOC,即渲染属性和高阶组件这两种方式来实现的,原来方式就是编写复杂且组件层级过多。
(5)自定义hooks会改变我们的编程思维,我们关心的是利用state的改变,它会整个函数重新执行一遍的特性,来编写组件共享的逻辑代码。
二、如何自定义hooks
use开头定义函数,借鉴ahooks的接口规范,可以约写参数不超过2个的方式,自定义hooks的编写,这里面充分利用了react内置的hooks,例如useState,useEffect等钩子函数。