8.2 创建Vnode

Vnode这个类在之前章节已经分析过源码,本质上是用一个对象去描述一个真实的DOM元素,简易版关注点在于元素的tag标签,元素的属性集合data,元素的子节点children,text为元素的文本节点,简单的描述类如下:

  1. class VNode {
  2. constructor(tag, data, children) {
  3. this.tag = tag;
  4. this.data = data;
  5. this.children = children;
  6. this.elm = ''
  7. // text属性用于标志Vnode节点没有其他子节点,只有纯文本
  8. this.text = util._isPrimitive(this.children) ? this.children : ''
  9. }
  10. }