[TOC]
* * * * *
# 0 主體目錄
> 主體目錄模塊組織按照文件導入關系組織
> 源代碼的組織在框架流程中詳細介紹
> 模塊的依賴關系以modern版本分析為主
# 1 入口文件
## 1 入口文件
~~~
src\
avalon.js ;兼容版本入口
avalon.modern.js ;modern版本入口
avalon.next.js ;next版本入口
avalon.test.js ;測試目錄
~~~
## 2 模塊組織
~~~
src\avalon.modern.js
var avalon = require('./seed/modern') ;核心入口
require('./filters/index') ;過濾器入口
require('./vdom/index') ;虛擬dom入口
require('./dom/modern') ;dom操作入口
require('./directives/modern') ;過濾器入口
require('./strategy/index') ;同步策略
require('./vmodel/modern') ;vmodel入口
avalon.onComponentDispose = require('./component/dispose.modern') ;組件入口
module.exports = avalon
~~~
# 2 核心目錄(src\seed\\)
~~~
src\seed\modern.js
var avalon = require('./core') ;核心功能
var browser = require('./browser') ;瀏覽器接口
avalon.shadowCopy(avalon, browser) ;合并接口
require('./lang.modern') ;語言接口
require('./lang.share') ;語言工具
require('./config') ;配置內容
module.exports = avalon
~~~
# 3 過濾器目錄(src\filters\\)
~~~
src\filters\index.js
var number = require("./number") ;數字過濾器
var escape = require("./escape") ;字符串轉移
var sanitize = require("./sanitize") ;生成js操作
var date = require("./date") ;日期過濾器
var arrayFilters = require("./array") ;數組過濾器
var eventFilters = require("./event") ;事件過濾器
var filters = avalon.filters ;注冊過濾器
~~~
# 4 虛擬dom目錄(src\vdom\\)
~~~
src\vdom\index.js ;虛擬dom的api
var VText = require('./VText') ;虛擬文本節點
var VComment = require('./VComment') ;虛擬注釋節點
var VElement = require('./VElement') ;虛擬元素節點
~~~
# 5 dom目錄
~~~
src\dom\modern.js ;dom的api入口
require('./shim/modern') ;瀏覽器修正
require('./class/modern') ;class操作
require('./attr/modern') ;attr操作
require('./css/modern') ;css操作
require('./val/modern') ;form操作
require('./html/index') ;html操作
require('./event/modern') ;event操作
require('./ready/modern') ;domready注冊
~~~
# 5 指令目錄(src\\directives\\)
~~~
src\directives\modern.js
//vm.id
require('./important') ;important指令解析比較更新
require('./controller') ;controller指令解析比較更新
//處理屬性樣式
require('./attr.modern') ;attr指令比較更新
require('./css') ;css指令比較更新
require('./visible') ;visible指令比較更新
//處理內容
require('./expr') ;expr表達式解析比較刷新
require('./text') ;text指令解析比較刷新
require('./html') ;html指令解析比較刷新
//需要用到事件的
require('./class.hover.active') ;class事件比較刷新
require('./on') ;on事件解析比較刷新
require('./duplex/modern') ;數據雙向綁定解析比較刷新
require('./validate') ;注冊數據驗證對比刷新驗證處理
require('./rules') ;數據輸入規則解析對比
//處理邏輯
require('./if') ;if指令
require('./for') ;for指令
//組件動畫
require('./widget') ;widget組件解析
require('./effect') ;effect動畫解析比較刷新
~~~
# 6 刷新策略目錄(src\strategy\\)
~~~
;src\strategy\index.js
avalon.lexer = require('./lexer') ;html字符串解析
avalon.diff = require('./diff') ;節點對比
avalon.batch = require('./batch') ;批量刷新掛載
var parseView = require('./parser/parseView') ;模板解析入口
~~~
# 7 vmodel目錄
~~~
;src\vmodel\modern.js
var share = require('./parts/modern') ;vmodel接口
;src\vmodel\parts\modern.js ;vmodel接口
var share = require('./share') ;接口
;src\vmodel\parts\share.js ;接口
var $$skipArray = require('./skipArray') ;skipArray接口
var dispatch = require('./dispatch') ;dispatch接口
;定義avalon.define()
~~~
- 概述
- 框架目錄
- 組件目錄(components\)
- 生成目錄(dist\)
- 測試目錄(karma\)
- 示例目錄(perf\)
- 主體目錄(src)
- 其他文件
- 框架流程
- 前:章節說明
- 主:模板掃描(avalon.scan())
- 主:VM創建(avalon.define())
- 主:同步刷新(avalon.batch())
- 附:節點解析(avalon.lexer())
- 附:虛擬DOM(avalon.vdomAdaptor())
- 附:渲染函數(avalon.render())
- 附:VM生成(avalon.masterFactory())
- 附:節點diff(avalon.diff())
- 主:界面事件(test)
- 框架工具
- 另:全局函數
- 另:全局正則
- 另:事件接口
- 另:組件接口
- 另:DOMApi
- 框架驅動
- D : 指令實現
- D:兼容處理
- 使用范例
- 基礎原理
- js模塊
- js對象
- js函數
- js數組
- js字符串
- dom接口
- 框架心得
- 心:總體思路