[TOC]
* * * * *
# 1 核心总览
* Vue主要包括编译时和运行时两部分
* 编译时的文件分布在
* (compiler\\) 主要包含模板编译
* (platforms\web\compiler\\) 主要包含web平台编译扩展
* 运行时的文件分布在
* (platforms\web\runtime\\) 主要包含web平台模板动态更新
* (core\\) 主要包含模板与数据绑定
* 关于服务器渲染(server\\)分析省略。
# 2 核心功能
>(编译时)
>> (parse)模板解析为ASTElement,
>> (optimizer)优化解析结果ASTElement,减少遍历元素
>> (codegen)根据ASETElement,生成渲染函数
>主要实现带指令模板到渲染函数生成
>(运行时)
>> (runtime) 实现模板的动态更新(patch())
>> (vue) 实现模板与数据的双向绑定($mount())
> 主要实现模板与数据的互动。
# 3 核心关系
## 1 整体结构
### .1 编译运行时组织
~~~
entries/web-runtime-with-compiler.js ;编译运行时构建入口
entries/web-runtime.js ;运行时构建入口
web/compiler/index.js ;web平台扩展编译接口
~~~
### .2 编译时组织
~~~
entires/web-compiler.js ;编译时构建入口
web/compiler/index.js ;web平台扩展编译接口
~~~
### .3 运行时组织
~~~
entries/web-runtime.js ;web平台扩展运行接口
core/index.js ;vue核心数据与模板绑定
web/runtime/patch.js ;web平台模板动态刷新
web/runtime/directives/index.js ;web平台运行时指令刷新
web/runtime/components/index.js ;web平台运行时组件刷新
~~~
## 2 编译时结构
### .1 编译时
~~~
web/compiler/index.js ;web平台扩展编译接口
compiler/index.js ;模板编译接口
web/compiler/modules/index.js ;web平台扩展模块编译
web/compiler/directives/index.js ;web平台扩展指令编译
~~~
### .2 编译时模块
~~~
compiler/index.js ;模板编译
parser/index.js ;模板解析
optimizer.js ;解析优化
codegen.js ;渲染生成
/directives/index.js ;基础指令编译
~~~
## 3 运行时结构
### .1 核心模块
~~~
core/index.js ;核心数据与模板绑定
core/instance/index.js ;vue核心接口
core/global-api/index.js ;vue扩展接口
~~~
### .2 运行时模块
~~~
web/runtime/patch.js ;web平台扩展动态刷新接口
web/runtime/node-ops.js ;web平台节点操作
web/runtime/modules/index.js ;web平台运行时模块刷新
core/vdom/modules/index.js ;核心dom模块刷新
core/vdom/patch.js ;核心dom对比刷新
~~~
- 框架概述
- 框架目录
- 类型检查
- 测试示例
- 构建目录
- 核心依赖
- 框架结构
- 模板编译(compiler)
- directives(指令解析)
- parser(模板解析)
- codegen.js(生成渲染函数)
- error-detector.js(错误检测)
- events.js(事件解析)
- helpers.js(编译助手)
- index.js(编译入口)
- optimizer.js(解析优化)
- 核心接口(core)
- components(框架组件)
- global-api(框架扩展)
- instance(Vue核心)
- observer(数据绑定)
- util(核心工具)
- vdom(虚拟dom)
- config.js(配置文件)
- index.js(入口文件)
- 构建入口(entries)
- web-compiler.js(编译时)
- web-runtime.js(运行时)
- web-runtime-with-compiler.js(编译运行时)
- web-server-renderer.js(服务端渲染)
- 平台接口(platforms\web)
- compiler(web编译时)
- runtime(web运行时)
- server(web服务渲染)
- util(web工具)
- 服务端渲染(server)
- create-renderer.js(渲染接口)
- render.js(函数渲染)
- render-stream.js(流渲染)
- 工具目录(shared)
- util(工具文件)
- 框架流程
- Vue初始化
- Vue模板编译
- Vue数据渲染
- Vue数据绑定
- 框架更新
- 更新日志
- 基础原理
- js基础
- 数据绑定基础
- vdom基础
- mvvm基础
- 框架总结