虚拟DOM 描述元素和元素之间的关系 创建一个JS对象
如果组件内有响应的数据 数据发生改变的时候 render函数会生成一个新的虚拟DOM 这个新的虚拟DOM会和旧的虚拟DOM进行对比 找到需要修改的虚拟DOM内容 然后去对应的真实DOM中修改
diff算法 就是虚拟DOM的比对时用的 放回一个patch对象 这个对象的作用就是存储两个节点不用的地方 最后用patch里记录的信息进行更新真实DOM
步骤
1. JS对象表示真实的DOM结构 要生成一个虚拟DOM 再用虚拟DMO构建一个真实DOM时 渲染到页面
2. 状态改变生成新的虚拟DOM 跟旧的虚拟DOM进行对比 这个比对的过程就是DIFF算法 利用patch记录差异
3. 把记录的差异用在第一个虚拟DOM生成真实DOM上 视图就更新了