[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接口
- 框架心得
- 心:总体思路