一、Virtual Dom渲染成真实的DOM需要经过VNode的定义、diff、patch过程
二、虚拟dom使用VNode描述
1、tag属性即这个VNode的标签属性
2、data属性包括最后渲染成真实DOM节点后,节点上的class、style、attribution、以及绑定的事件
3、children属性是VNode的的子节点
4、text是文本属性
5、elm属性为这个VNode对应的真实节点
6、key属性是VNode的标记,在diff过程中可以提高diff算法
三、源码创建VNode过程
1、执行this._init方法,初始化vue
2、通过$mount实例方法区挂载dom
3、 $mount会去调用mountComponent方法
4、mountComponent核心实例化一个渲染Watcher,在它的回调函数中调用updataComponent方法,在此方法中先生成虚拟Node,最后调用update更新DOM。在render函数中利用_createElement方法创建VNode
5、调用new Watcher函数,监听数据变化,当数据发生变化时,render函数执行生成vnode对象