当前位置:  首页>> 技术小册>> Vue源码完全解析

1. 前言

希望这本小册可以帮助大家一方面开阔自己的知识视野,另一方面也希望这些文字能够带给他人些许帮助。

2. 学习规划

2.1 源码学习目录

本项目所剖析的Vue.js源码版本是目前最新的版本,版本号为 v2.6.11 ,其代码目录如下:

  1. ├─dist # 项目构建后的文件
  2. ├─scripts # 与项目构建相关的脚本和配置文件
  3. ├─flow # flow的类型声明文件
  4. ├─src # 项目源代码
  5. ├─complier # 与模板编译相关的代码
  6. ├─core # 通用的、与运行平台无关的运行时代码
  7. ├─observe # 实现变化侦测的代码
  8. ├─vdom # 实现virtual dom的代码
  9. ├─instance # Vue.js实例的构造函数和原型方法
  10. ├─global-api # 全局api的代码
  11. └─components # 内置组件的代码
  12. ├─server # 与服务端渲染相关的代码
  13. ├─platforms # 特定运行平台的代码,如weex
  14. ├─sfc # 单文件组件的解析代码
  15. └─shared # 项目公用的工具代码
  16. └─test # 项目测试代码

从上面的目录结构可以看出,Vue的整个项目包含了类型检测相关、单元测试相关、与平台无关的核心代码以及跨平台运行的相关代码。

由于我们只是学习Vue.js的设计思想以及代码实现的相关逻辑,所以我们暂不去关心类型检测、单元测试以及特定平台运行等相关逻辑实现,仅关注它的核心代码,即src/coresrc/complier这两个目录下的代码,并且接下来后续的学习也都是只在这两个目录的范围之内。

2.2 学习路线

在学习之前,我们需要先制定一个学习路线,循序渐进的学习,这样不至于一头雾水,无处下手。后面的学习路线如下:

  1. 变化侦测篇

    学习Vue中如何实现数据的响应式系统,从而达到数据驱动视图。

  2. 虚拟 DOM 篇

    学习什么是虚拟 DOM,以及Vue中的DOM-Diff原理

  3. 模板编译篇

    学习Vue内部是怎么把template模板编译成虚拟DOM,从而渲染出真实DOM

  4. 实例方法篇

    学习Vue中所有实例方法(即所有以$开头的方法)的实现原理

  5. 全局 API 篇

    学习Vue中所有全局API的实现原理

  6. 生命周期篇

    学习Vue中组件的生命周期实现原理

  7. 指令篇

    学习Vue中所有指令的实现原理

  8. 过滤器篇

    学习Vue中所有过滤器的实现原理

  9. 内置组件篇

    学习Vue中内置组件的实现原理

2.3 学习输出

通过一步步的学习,在学习过程中输出以下三个东西:

  • 以文字形式记录学习过程;
  • clone下来的Vue源码添加尽可能详细的注释;
  • 做一份思维导图,以宏观角度总览源码;

该分类下的相关小册推荐: