项目作者: jeryqwq

项目描述 :
MVVM,VisturlDom,DIFF...
高级语言: JavaScript
项目地址: git://github.com/jeryqwq/MVVM-VDOM-DIFF.git
创建时间: 2018-08-20T15:20:37Z
项目社区:https://github.com/jeryqwq/MVVM-VDOM-DIFF

开源协议:GNU General Public License v3.0

下载


MVVM-VDOM-DIFF

MVVM,数据劫持。。。。

  1. 简易的VistrulDomDIFF算法实现,MVVM数据双向绑定,观察者模式,语法解析器等;

compile.js

  1. 初始化模版语法,data内数据渲染页面

observe.js

  1. 数据劫持,为每个数据设置get,set方法,触发数据修改后事件通知

watch.js

  1. 获取数据改变前后新值和旧值,callback函数使编译器重新渲染页面

element.js

  1. 虚拟DOM,使用CreateElement(tagName,Props,Children)形式创建虚拟DOM,例如React语法createElement("li",{className:'cj',name:'cj'},["textNode"]);

diff.js

  1. 深度遍历节点,生成新旧节点的补丁对象patches,
  2. patches(补丁)-----数组类型
  1. 例:{ATTR:"ATTRS",attrs:{className:'list',style:'background:red'}};
  2. TYPEINSERT(插入) insertNode:节点元素或文本节点(虚拟DOM,需要render函数转换为真是DOM并插入到父节点。....
  3. TYPE:ATTRS(属性更改),attrs:新属性值

patch.js

  1. 根据生成的补丁包对旧的节点进行补丁,避免浏览器重绘重排所带来的性能消耗