Virtual DOM是根据dom结构生成对应的js对象
具体把节点树抽象成虚拟dom的方法可以参考mastache库,就是根据{{}}关键字把字符串过滤成多维数组tokens;
<div>这是一个测试用例{{xhh}}好开心啊</div>
类似于[
[text: "<div>这是一个测试用例", name: “xhh”, text: "好开心啊</div>"]
]
vnode函数返回的是一个对象
function vnode (sel, data, children, text, elm) {
return {sel, data, children, text, elm}
}
需要注意的是
1.循环中要添加key值,key是作为唯一标识;
2.只能是同一虚拟节点才能进行精细比较(同层且同标签及同父级);
3.只能进行同层比较,跨层不进行比较;
网友评论