【Vue原理】Vue源码阅读总结大会 - 终

7,925 阅读7分钟

写文章不容易,点个赞呗兄弟

专注 Vue 源码分享,文章分为白话版和 源码版,白话版助于理解工作原理,源码版助于了解内部详情,让我们一起学习吧 研究基于 Vue版本 【2.5.17】

如果你觉得排版难看,请点击 下面链接 或者 拉到 下面关注公众号也可以吧

【Vue原理】Vue源码阅读总结大会 - 终

终于啊终于啊,把 Vue 系列的文章发完了了,如释重负的感jio啊,今天就打算总结下,我这段时间来的历程和收获,本文纯吹水,没有技术含量,各位客官权当娱乐消遣也无谓,来收集个表情包也是可以的

公众号


学习源码用时

花了3个多月读源码,花了六个月 写文章,花了九个月发文章

耗时如下

从 2018 - 9 - 10 开始读源码

然后从 2018 - 12 - 5 开始写文章

然后 2019 - 6 - 2 写完所有文章

然后 2019 - 8 - 19 发完所有文章(也就是今天)

公众号

我不是写了就马上发的,我写完一篇文章之后,要等一段时间之后,再重新审核一遍再发送,这样一来,既可以发现遗漏的错误,也可能可以收获不同的心得

你以为这时间算长的了吗??

其实如果只用晚上下班回去的时间写的话......写文章估计得用一年......我不仅内容追求简单,可以让我们在以后忘记的时候迅速捡回来,我还要追求排版好看(鳖跟我说难看好不喽,我花了很多心思的哈哈),因为我知道排版难看的文章一秒都不想爱看下去....

然后我为什么只用半年呢,我.....不好说....哈哈哈

公众号

不过也算很长了,历时这么长,真的是非常难熬的,在 坚持和 放弃中 摇摆不定,57 篇文章真不是搞笑的啊,差点崩溃了

公众号

幸好给自己定的奖励,一路撑着我走到现在

比如写完这个系列,我打算给自己买双鞋子.....

咳咳,回到正题

阅读源码不难,难的是深度阅读源码

怎么深度阅读呢,就是自己先提前想好一堆问题,然后去源码中找答案,不然一堆源码摆在面前,是会懵逼的

而且当你发现你要解决一个问题的时候,通常你要先解决七八个问题,并且你会碰到好多盲区知识点,这就是最烦的地方

而写文章是烦上加烦了,我不能囫囵吞枣啊,涉及的盲区知识统统都要去了解,所有附加的问题也统统要解决,因为你要更加详细的了解他的流程 并且 理解,没得办法的啊

公众号

不要觉得边看源码然后随便记个笔记就可以了,笔记是应付自己的,你觉得你会花多少精力去弄?

反正我觉得自己看源码时做的笔记,都没能怎么帮助我写文章,因为偷懒没怎么用心去写

所以更加坚定了我写文章的信念,特么的,写的笔记都不想看,我特么时间不是白花了吗,源码不是白看了吗

公众号


我是怎么读源码

我看源码测试,都是直接看一整个开发版的 Vue 文件,而我看网上很多人都是选择看 Github 上 Vue 功能分类好的文件夹

我个人不太喜欢这样,虽然每个文件都相比一整个文件简短不少,功能分类好,但是文件太多,会徒增我的疲惫感和厌烦感

我直接看一个整个文件,直接script引入,有一种爬高山的感觉。直接征服一万多行的代码,爽得黑文

像上面那种,就是像爬很多座小山,个人感觉会累很多,有点烦

而且这样方便我进行调试,相关内容可以看看

【Vue原理】学会调试Vue源码


学习感悟

都不知道写文章有多烦,耗费的时间和精力不是一般的多,比看源码还要多

有时看源码,基本弄懂一个流程就行了,根本不会细致到每一个细节

因为要写文章,我必须精细到每一个细节,完整走一遍流程,生怕自己写的东西不够严谨(虽然可能也会有瑕疵)

有时明明已经写到吐了,还是坚持完成目标,这真的是一个恶心的过程啊喂。

公众号

有时真的想想这样好烦啊,但是,我坚定一个信念

越使我烦躁的东西,越能使我强大

简单的东西,大家都会,凭什么你能更加优秀

难的东西,大家都不会,凭什么你能更加优秀

那我想更加优秀,我就只能从烦入手了,因为烦躁本身就已经帮我筛选过滤了一部分人

那么只要我突破他,那我就可以领先这部分人

因为本来就不是什么很厉害的人,普普通通的程序猴子

你要做的就是去跨越那些烦躁的东西

难的东西你不行,烦躁的东西你还不肯去弄,你竞争个毛啊竞,翻去执牛屎了

公众号

这种烦躁的情绪在 写 compile 的时候特别严重,因为 compile 的源码实在 是太多了,虽然已经是看过一遍并做了笔记,才来写的文章,仍然刚到很吃力,非常吃力

compile 的每一篇文章,大概都花几天的才写完的,最长的可能一个星期,并且在发之前还要审核一天以确保正确性,而 compile 有多少篇文章呢?

嗯,有 9 篇,真的是倾注心血的,我觉得不会辜负看过的人

你问我为什么要分享

1、自己的想法难免有限,肯定会有漏掉的错误,别人可以发现指正你

2、分享自己的成果。一个人不停变好的人,也一定可以让别人一起变好


学习收获

读源码,个人感觉有什么好处呢,简单罗列几点把

1、懂得很多项目细节的处理方法,比如对象合并,比如清空数组

2、更加熟悉这个框架,可以解决遇到的奇怪问题而不会干着急(比如之前碰到的 computed 缓存)

3、学到很多新知识点(MessageChannel,shadow dom)

4、可以让你重新认识旧知识(宏微任务)

5、怎么写出规范又好维护的代码

6、可以看懂别人打包后的代码(笑哭)

7、项目有些问题的处理思路,比如在 Diff 中有个函数,学会了怎么在两个数组中,匹配是否有相同项

在 Vue 源码分享大会的开始,我们也有说过,可以看下

【Vue原理】Vue源码阅读总结大会 - 序


最后

我很害怕自己会写错东西,所以一直很小心翼翼地检查文章,写出一篇文章我不会马上发表,而是等过一段时间再审查一遍,看是否有不通畅,不正确的地方

只能说我的能力有限吧,还是会难以避免地可能存在的错误

看了文章的童鞋,希望能对你们有所帮助

有错误的地方,也请勇于指出,我非常希望有人纠正我哈哈,我会有重酬的!

Vue 系列写完之后,后面可能会更新一些 Vue 的番外篇,比如源码中的一些小功能,但是现在估计会断更一段时间,接着后面会发腾讯前端进阶课程的心得

公众号

公众号