
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.3.5 自定义Hooks
如果在多个组件中使用了相同的useEffect或useState逻辑,推荐将这些相同的逻辑封装到函数中,这类函数被称为自定义Hooks。下面举3个自定义Hooks的示例。
1.usePrevVal
usePrevVal的功能是获取状态上一次的值,它利用了Ref的可变性,以及effect在DOM被绘制到屏幕上才执行的特性。

2.useVisible
useVisible的功能是检测DOM元素是否在浏览器视口内,它在effect中创建observer来异步观察目标元素是否与顶级文档视口相交。

3.useForceUpdate
useForceUpdate是返回一个让组件重新渲染的函数。
