ahooks 源码解析系列【预告篇】
为什么做这个系列
程序员的圈子里流行这么一句话“Talk is cheap,show me your code.”,可见在这么一个圈子文化里面,嘴上说的,PPT 上写的东西都是苍白无力的,只有用代码落地实现的才具有说服力。
相信也有很多前辈或者大佬在教授新人的时候,或者在新人进阶阶段会说,你想吃透 Spring 吗,你想搞通 React 吗?那就没有比实现一遍更好的方法了
为什么选ahooks
首先我们看下 ahooks 的定位和作用,我们看下 ahooks 官网的定义:一套高质量可靠的 React Hooks 库,那么它有哪些特性呢
✨ 特性
- 易学易用
- 支持 SSR
- 对输入输出函数做了特殊处理,避免闭包问题
- 包含大量提炼自业务的高级 Hooks
- 包含丰富的基础 Hooks
- 使用 TypeScript 构建,提供完整的类型定义文件
既然是通过源码去学习提升自己的技术,为什么不直接从 React 或者 Vue 这个吃饭的根本家伙搞起呢?有以下几点原因
- React 或者 Vue 虽然也足够轻量化,质量更高,但是从工程化和其本身背后还是相当庞大复杂的,不太适合上来就啃
- Hooks 库,这一类工具应该说是我们做业务开发中比较常见的使用工具,源码体量不是特别大,而且颗粒度适中,可以从易到难
- 跟 UI 和视觉无关,其实做前端或者哪怕是后端开发的同学都懂的,牵扯到 UI 和视觉的,这个事未必有服务端的架构,高可用,分布式这么深奥,但是绝对是个麻烦的领域。Hooks 库更多的就是对业务和技术开发过程中的总结和经验,更容易切入
- ahooks 库本身使用量高,代码质量不错,单元测试覆盖全,文档详尽,非常适合在进阶阶段用来练手
这个系列包含哪些内容
- 前端开源项目的工程化,包括工程创建,文档,测试,demo,打包工具等
- React 中的 Hooks 实现原理和设计思想
- ahooks 的 Hooks 的实现【重点】
- TypeScript 在开源项目和前端框架或者库中扮演的角色和意义
- 考虑从 0-1 实现一套 Hooks【另开系列】
以往自己在学习的时候,虽然发现讲述 React,Vue 的文章和分享很多,但是真正讲透的其实不多,更多的是甩出文档定义,简单的 demo 演示就结束了,这其中一是忽略深度,其次是忽略了工程化的一些东西,无法自己实现源码定位和调试,不同的项目打包工具,集成工具五花八门。所以后面在做类似前端项目技术解析的时候,我更花一些篇幅介绍下工程化的东西,看看不同的团队或者工具在这些方面使用。ahooks 项目源码在这块选择的是dumi,后续更新的时候会用些篇幅介绍
如果大家喜欢的话,欢迎关注公众号:喵爸的小作坊