UNPKG

create-vnode

Version:

一个简易的虚拟dom生成器和渲染器,包含diff算法

31 lines (27 loc) 1.03 kB
import { createElement, diff, patch } from '../dist/bundle.js' const tree = createElement("div", { id: "root" }, [ createElement("h1", { style: "color: blue" }, ["Tittle1"]), createElement("p", ["Hello, virtual-dom"]), createElement("ul", [ createElement("li", { key: 1 }, ["li1"]), createElement("li", { key: 2 }, ["li2"]), createElement("li", { key: 3 }, ["li3"]), createElement("li", { key: 4 }, ["li4"]) ]) ]); // 2. 通过虚拟DOM构建真正的DOM const root = tree.render(); document.body.appendChild(root); const newTree = createElement("div", { id: "root" }, [ createElement("h1", { style: "color: red;" }, ["Tittle2"]), createElement("p", ["Hello, virtual-dom"]), createElement("ul", [ createElement("li", { key: 1 }, ["li11111"]), createElement("li", { key: 2 }, ["li2"]), createElement("li", { key: 3 }, ["li3"]), createElement("li", { key: 4 }, ["li4"]) ]) ]); const patches = diff(tree, newTree) // 5. 在真正的DOM元素上应用变更 patch(root, patches);