[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基礎
- 框架總結