首先要构建一个 VNode 的类,DOM 元素上的所有属性在 VNode 类实例化出来的对象上都存在对应的属性。例如 tag 表示一个元素节点的名称,text 表示一个文本节点的文本,chlidren 表示子节点等。将 VNode 类实例化出来的对象进行分类,例如注释节点、文本节点、元素节点、组件节点、函数式节点、克隆节点。
然后通过编译将模板转成渲染函数 render,执行渲染函数 render,在其中创建不同类型的 VNode 类,最后整合就可以得到一个虚拟 DOM(vnode)。最后通过 patch 将 VNode 和 oldVNode 进行比较后,生成真实 DOM。