目录总览
图片版
.
文字版
Vue
|— benchmark 一些测试文件
|— build 打包相关的配置文件
|— dist 打包之后生成的文件
|— examples 示例
|— flow 静态类型检查,这里定义了声明了一些静态类型,可见专题上一篇
|— packages 用于分别生成其它npm包
|— src 核心代码目录
|— test 测试用例1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
核心目录src
src
|— compiler 模板解析相关
|—codegen 根据ast生成render函数
|—directives 通用生成render函数之前需要处理的指令
|—parser 模板解析
|— core 核心代码
|— components 全局的组件,这里只有keep-alive
|— global-api 全局方法,也就是添加在Vue对象上的方法,比如Vue.use,Vue.extend,,Vue.mixin等
|— instance 实例相关内容,包括实例方法,生命周期,事件等
|— observer 双向数据绑定相关文件
|— util 工具方法
|— vdom 虚拟dom相关
|— platforms 不同平台的支持
|— web web端独有文件
|— compiler 编译阶段需要处理的指令和模块
|— runtime 运行阶段需要处理的组件、指令和模块
|— server 服务端渲染相关
|— util 工具库
|— weex weex端独有文件
|— server 服务端渲染相关
|— sfc .vue文件解析
|— shared 共享相关的代码1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
compiler
compiler ⽬录包含 Vue.js 所有编译相关的代码。它包括把模板解析成 ast 语法树,ast 语法树优化,代码⽣成等功能。
编译的⼯作可以在构建时做(借助 webpack、vue-loader 等辅助插件);也可以在运⾏时做,使⽤包含构建功能的 Vue.js。显然,编译是⼀项耗性能的⼯作,所以更推荐前者——离线编译。
core
core ⽬录包含了 Vue.js 的核⼼代码,包括内置组件、全局 API 封装,Vue 实例化、观察者、虚拟DOM、⼯具函数等等。
platform
Vue.js 是⼀个跨平台的 MVVM 框架,它可以跑在 web 上,也可以配合 weex 跑在 natvie 客户端上。
platform 是 Vue.js 的⼊⼝,2 个⽬录代表 2 个主要⼊⼝,分别打包成运⾏在 web 上和 weex 上的Vue.js。
server
Vue.js 2.0 ⽀持了服务端渲染,所有服务端渲染相关的逻辑都在这个⽬录下。注意:这部分代码是跑在服务端的 Node.js,不要和跑在浏览器端的 Vue.js 混为⼀谈。
服务端渲染主要的⼯作是把组件渲染为服务器端的 HTML 字符串,将它们直接发送到浏览器,最后将静态标记"混合"为客户端上完全交互的应⽤程序。
sfc
通常我们开发 Vue.js 都会借助 webpack 构建, 然后通过 .vue 单⽂件的编写组件。
这个⽬录下的代码逻辑会把 .vue ⽂件内容解析成⼀个 JavaScript 的对象。
shared
Vue.js 会定义⼀些⼯具⽅法,这⾥定义的⼯具⽅法都是会被浏览器端的 Vue.js 和服务端的 Vue.js 所共享的。