vue为什么要操作虚拟dom?
如果直接操作真实dom ,性能低
在vue中,每个组件走有一个render函数,这种渲染不仅发生在组件创建的时候,还发生在视图依赖的数据更新的时候,如果在渲染时,直接使用真实dom,由于真实dom的创建,更新,插入会带来大量的性能消耗,从而就会极大地降低渲染效率,因此,vue在渲染时,使用虚拟dom来替代真实dom主要是解决渲染效率的问题
render函数 第一次调用实在 组件加载的时候 第二次就是 试图数据依赖更新的时候
diff算法
vue2中
深度 递归+双指针
第一步: 判断是不是同一个元素 不是同一个元素的直接替换
第二步: 是同一个元素 => 比对属性 => 比对儿子
比对 : 老的有儿子 新的没有儿子 就是删除操作
老大没有儿子 新的有儿子 就是添加操作
文本情况 就是添加
新老都有儿子 =》双指针 头头 尾尾 头尾 尾 头 =》对比查找后进行复用
vue3中: 最长递增子序列