Skip to content

ahooks 源码解析系列【预告篇】

image-20231204145711535

为什么做这个系列

程序员的圈子里流行这么一句话“Talk is cheap,show me your code.”,可见在这么一个圈子文化里面,嘴上说的,PPT 上写的东西都是苍白无力的,只有用代码落地实现的才具有说服力。

相信也有很多前辈或者大佬在教授新人的时候,或者在新人进阶阶段会说,你想吃透 Spring 吗,你想搞通 React 吗?那就没有比实现一遍更好的方法了

为什么选ahooks

首先我们看下 ahooks 的定位和作用,我们看下 ahooks 官网的定义:一套高质量可靠的 React Hooks 库,那么它有哪些特性呢

✨ 特性

  • 易学易用
  • 支持 SSR
  • 对输入输出函数做了特殊处理,避免闭包问题
  • 包含大量提炼自业务的高级 Hooks
  • 包含丰富的基础 Hooks
  • 使用 TypeScript 构建,提供完整的类型定义文件

既然是通过源码去学习提升自己的技术,为什么不直接从 React 或者 Vue 这个吃饭的根本家伙搞起呢?有以下几点原因

  1. React 或者 Vue 虽然也足够轻量化,质量更高,但是从工程化和其本身背后还是相当庞大复杂的,不太适合上来就啃
  2. Hooks 库,这一类工具应该说是我们做业务开发中比较常见的使用工具,源码体量不是特别大,而且颗粒度适中,可以从易到难
  3. 跟 UI 和视觉无关,其实做前端或者哪怕是后端开发的同学都懂的,牵扯到 UI 和视觉的,这个事未必有服务端的架构,高可用,分布式这么深奥,但是绝对是个麻烦的领域。Hooks 库更多的就是对业务和技术开发过程中的总结和经验,更容易切入
  4. ahooks 库本身使用量高,代码质量不错,单元测试覆盖全,文档详尽,非常适合在进阶阶段用来练手

image-20231204150927784


这个系列包含哪些内容

  • 前端开源项目的工程化,包括工程创建,文档,测试,demo,打包工具等
  • React 中的 Hooks 实现原理和设计思想
  • ahooks 的 Hooks 的实现【重点】
  • TypeScript 在开源项目和前端框架或者库中扮演的角色和意义
  • 考虑从 0-1 实现一套 Hooks【另开系列】

以往自己在学习的时候,虽然发现讲述 React,Vue 的文章和分享很多,但是真正讲透的其实不多,更多的是甩出文档定义,简单的 demo 演示就结束了,这其中一是忽略深度,其次是忽略了工程化的一些东西,无法自己实现源码定位和调试,不同的项目打包工具,集成工具五花八门。所以后面在做类似前端项目技术解析的时候,我更花一些篇幅介绍下工程化的东西,看看不同的团队或者工具在这些方面使用。ahooks 项目源码在这块选择的是dumi,后续更新的时候会用些篇幅介绍

如果大家喜欢的话,欢迎关注公众号:喵爸的小作坊