Skip to content
霞露小伙 — HfWang
On this page

ahooks

本系列不会把 ahooks 中的所有 hooks 都分析一边,只会从从中挑选部分和 UI 库无关以及自己平时用的比较多的 hooks 进行分析,如果要学习全部 hooks 的话,建议直接去看项目

招数分类标准

大侠看这

  • 初入江湖:只用到 react 提供的 hooks 就能实现功能
  • 副本刷怪:分析 ahooks 中的工具函数
  • 掉入悬崖:除了使用到 react 提供的 hooks,还是需要用到 utils 中的工具函数或者其他第三方工具函数,但是难度不大
  • 大难不死: ahooks 中难度比较大的自定义 hooks
  • 习得神功:对本系列分析的 hooks 进行一下总结以及思考

每个分类都有对应的 武功招数 可以给大侠们学习

安装

shell
pnpm add ahooks
npm i ahooks
yarn add ahooks

ahooks 项目架构

这个系列的全部代码都是基于 ahooks 3.7.7

ahooks 采用 pnpm + monorepo 结构组织代码

shell
- hooks
 - .github github 工作流
 - .husky 代码提交规范
 - config 文档配置,即配置那个自定义 hooks 在那个具体的分类下面
 - docs 文档,基于 dumi2
 - example 本地开发测试时的测试文件
 - public 静态资源
 - packages
  - hooks
    - src 绝大部分自定义 hooks 都在这个目录下(后面介绍的自定义 hooks 都在这个里面)
  - use-url-state 和路由相关的自定义hooks,单独作为一个项目
 - ...

ahooks 设计理念

在使用 ahooks 提供的各种自定义 hooks 时有的 hooks 我们会传入一个函数,如 useMount,有的 hooks 又会返回出一个函数,如 useToggle

ahooks 使用 useRef 对我们输入的函数进行包装,这样可以保证函数对应的内存地址不变

而对于输出的函数使用 useCallback 进行包装,这样可以保证输出函数对应的内存地址永远为最新的地址

从而避免闭包问题

本站中引用到的其他资料,如有侵权,请联系本人删除