vue3 为何比vue2快
Proxy 响应式
PatchFlag
- 变异模板是,动态节点做标记
- 分为不同类型标记 如TEXT PROPS
- diff算法时,可以区分静态节点,以及不同类型的动态节点
只对有标记的做对比 并且根据标记优化对比
hoistStatic
- 将静态节点的定义,提升到父作用域,缓存起来
- 多个相邻的静态节点,会被合并起来
- 典型的拿空间换时间的优化策略
catcheHandler
- 同样是拿空间换时间
- 把事件缓存下来 如果没有就缓存 有的话就用缓存的
SSR优化
- 静态节点直接输出 绕过vdom
- 动态节点 还是要动态渲染
tree-shaking
- 编译时 根据不同模版内容引入不同的api