Vue2和Vue3的区别
- 响应性:(性能方面:不需要初始化的时候进行深度递归)
○用Object.defineProperty实现,只能监听到指定对象的指定属性的getter和setter,新增和删除属性会失效。
○vue3是通过Proxy直接代理一个普通对象,得到一个Proxy实例,这个过程通过reactive实现,但是Proxy只能实现代理负责类型的数据,额外提供了ref方法实现简单数据类型的响应。ref没有进行数据监听,而是构建RefIml的类,通过set和get标记了value函数来进行实现。所以本质上是调用了value方法
- 生命周期

- Vue2用的是选项式API,Vue3用的是组合式API
- 新增watchEffect,可以立即监听执行不必要等到改变
- 组件通信

- Vue3使用了Tree-shaking技术,能够更加精确的分离出代码减小打包体积
- 通过组合式API引入了逻辑复用的概念,提高了组件的可复用性和可维护性。这样可以让使用者更加方面的组合逻辑
- 更友好的支持TypeScript
- 简化了模板语法
- 使用了Fragments技术使得组件的挂载更新更快
- 使用新的树形算法,每次更新只会渲染发生了变化的组件及其子组件,避免了不必要的渲染。
- Vue3在编译时标记静态节点,并将其提取成常量,减少了渲染时需要的计算量。