一天学习一个轮子,十天后变成轮子哥

2021-04-28 21:22:31 +08:00
 Haixiang

链接: https://github.com/Haixiang6123/one-day-one-npm-lib

最近发现自己一直在画页面,画完一个又画下一个,对自己提升并不大,游戏也慢慢不好玩了。

一个月前的一天,我坐在电脑前盯着 package.json 发呆,突然想到平时我们天天在用的库我们根本没管过里面是怎么实现的,都是 npm install 就直接用了,就算知道实现的大概但也没真正看过源码。所以我点进了 react-errorboundary 这个库的源码看,看着看着就到了 12 点,看完后觉得有种神清气爽的感觉。

然后我陷入了沉思:看这种小库的源码其实并不难,只要耐心看下去谁都能看懂,网上也有很多看源码教程,但是就是没多少人去研究一下。后来的得出的结论是因为

  1. 有“看源码恐惧症”,当然我以前也是,总是觉得自己还没到达看源码的地步,水平还不够
  2. 网上的文章太关注源码了本身了,上来直接甩代码开始一通解释,忽略了一个实事实:所有今天看到的源码也是通过解决一个一个的 Issue 和实现一个一个的 feature 才慢慢优化得来的

所以每看一个 npm 轮子就写一篇文章,都从一个最简单的需求开始一步步去推演成源码的样子,一共写了 10 篇,分享给各位正在努力的前端伙伴~

链接: https://github.com/Haixiang6123/one-day-one-npm-lib

看完后可以忘掉所有这些轮子的实现与设计,但是希望这本“小书”可以给你一份“我自己一个人去阅读源码也没问题”的勇气,知道优秀的代码也是一步步写出来的,而不是洪水猛兽。

写这本“小书”的时候也是晚上 10 点多左右,脑子也不是在性能最好的时候,所以如果发现一些讲得不好的地方多多包涵,请轻喷~ peace

3846 次点击
所在节点    分享创造
15 条回复
TwoSetViolin
2021-04-28 21:49:43 +08:00
写得太好了,star 一个支持一下
huijiewei
2021-04-28 22:29:29 +08:00
顶一下

可否用 Function Component 和 Hook 呢
ReferenceE
2021-04-28 22:33:39 +08:00
泻药,10 天看一个模块都没看完的被折磨的人路过。不知道前端会不会简单一点
wzzzx
2021-04-28 22:35:26 +08:00
很棒啊这个项目
Haixiang
2021-04-28 23:33:54 +08:00
@TwoSetViolin 感谢!
Haixiang
2021-04-28 23:34:49 +08:00
@ReferenceE 希望这个项目可以带给你勇气,可以先从简单的模块开始看~
Haixiang
2021-04-28 23:35:06 +08:00
@wzzzx 感谢!嘻嘻
enchilada2020
2021-04-29 00:17:31 +08:00
全部看完可以去腾讯吗(
Haixiang
2021-04-29 01:58:52 +08:00
@huijiewei 没太懂
Haixiang
2021-04-29 01:59:01 +08:00
@enchilada2020 来,哈哈
xiayue
2021-04-29 11:21:16 +08:00
老哥厉害 ,最近在看 react 源码,一脸懵逼。。。
Haixiang
2021-04-29 13:35:44 +08:00
@xiayue 加油,共勉!
hades97
2021-04-30 09:48:31 +08:00
兄弟,readme 写错了,授人以鱼不如授人以渔
changhaotian08
2021-04-30 17:51:07 +08:00
已收藏
Haixiang
2021-05-01 13:38:56 +08:00
@hades97 哈哈,我瞎了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/773942

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX