1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

如何用ahooks控制时机的hook?

关于ahooks的封装

本篇主要和大家沟通关于ahooks,我们可以理解为加深对Reacthooks的了解。我们先说下关于抽象自定义hooks。构建属于自己的Reacthooks工具库。其实我们应该培养阅读学习源码的习惯,工具库是一个对源码阅读不错的选择。注:本系列对ahooks的源码解析是基于v3.3.13。

如何用ahooks控制时机的hook?

封装React需要注意的“时机”

FunctionComponentVSClassComponent。很多时候代码要讲究先后顺序,要掌握周期,且需知道在不同的阶段执行不同操作的代码,比如需要挂载完成之后才去获取dom的值,否则可能会获取不到相应的值。

组件生命周期

ClassComponent使用过React的ClassComponent的同学,就会知道其组件生命周期会分成三个状态:Mounting(挂载):已插入真实DOM,Updating(更新):正在被重新渲染,Unmounting(卸载):已移出真实DOM。其中每个状态中还会按顺序调用不同的方法,具体可以参考官方文档。而FunctionComponent是更彻底的状态驱动,没有生命周期的概念,它只有一个状态,React负责将状态渲染到视图中。

ahooks封装的Effect

基于useEffect/useLayoutEffect,ahooks做了一些封装,能够让你更加清晰的知道你的代码执行时机。其中LifeCycle-生命周期精简了组件挂载、卸载的操作;useUpdate能够强制组件重新渲染;useDeepCompareEffect和useDeepCompareLayoutEffect通过lodashisEqual进行深比较;useUpdateEffect和useUpdateLayoutEffect忽略首次执行,只在依赖更新时执行;useUnmount和useUnmountedRef是组件卸载时执行的Hook。这些封装来帮助我们更好地管理组件的生命周期和事件。

总结与思考

写代码要清楚知道,组件的生命周期是怎样的,还有代码的执行顺序、执行的时机是怎样的。在FunctionComponent中,使用useEffect/useLayoutEffect完成了ClassComponents生命周期的职责。加入ahooks的代码执行时机,可以让代码具有可读性以及逻辑更加清晰。

原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/7244.html