为什么?网上已有大量的Vue源码分析文章,但是我为什么要做这样的事情呢?因为我觉得纸上谈兵是肤浅的,我知道这件事必须要做。然后平时的项目主要是Vue。在使用Vue的过程中,对它的一些约定产生了一些疑惑。也许官网只会推荐你这样做,但我们可能不知道核心实现。例如:v-forkey是如何实现“就地复用”策略的?阵列更新检测是如何完成的?为什么可以动态添加根级响应属性?为什么vue可以支持weex跨平台,后来又支持mpvue。。。其次,内容好久没更新了。之前研究过vue源码,但是没有很系统的记录。现在我花了一些时间来做一个基本的总结。一方面是因为我想克服自己的惰性,另一方面是想重温过去。什么?一共分为10个基本部分,后面会继续记录。先看一下概览:然后再看一下基础目录:开始入口,解读Vue源码(一)---开始创建入口,解读Vue源码(二)--开始新的Vue故事入口,Vue源码解读(三)——InitMixin从第一入口开始,解读Vue源码(三)——InitMixin从第二入口开始,解读Vue源码(四)——实现一个基础Vue双向绑定入口开始,Vue源码解读(五)——$mount内部实现入口,Vue源码解读(六)——$mount内部实现——编译parse函数生成AST入口,Vue解读源码(七)——$mount内部实现——编译优化标记节点入口,解读Vue源码(八)——$mount内部实现---编译生成生成渲染函数入口开始,解读Vue源码(九)—$mount内部实现---渲染函数-->从VNode入口开始,解读Vue源码(十)——$mount内部实现---patchEnd?文章也是利用碎片时间进行了总结和整理。有的也看了很多资料,里面也有引用巨人的段落。标记。如果没有标记,可能是我忘记了,欢迎提醒。文中如有笔误或解释不当,欢迎批评指正,共同进步。最后:github地址部分源码demo
