看了李南江老师的课程,将内容做一个记录
- diff算法优化
vue2diff算法是对节点进行全量对比
vue3.0在创建虚拟dom的时候,会根据DOM中的内容会不会发生变化添加静态标记(patchFlag)
与上次虚拟节点对比的时候之对比带有patch flag的节点,并且可以通过flag的信息得知当前节点要对比的具体内容
hoistStatic 静态提升
vue2中无论元素是否参与更新,每次都会重新创建,然后在渲染
vue3中对于不参与更新的元素,会做静态提升,只会被创建一次,在渲染的时候直接复用cacheHandlers 事件侦听器缓存
默认情况下onClick会被视为动态绑定,所以每次都会去追踪它的变化
但是因为是同一个函数所以没有追踪变化,直接缓存起来复用即可