1、使用体验方面
- vue2采用的选项式api,vue3采用的是组合式api。
- vue2一般使用的是js,vue3对于ts的支持会比较好。
- vue2打包方式使用webpack比较多,vue3使用的是vite。
- vue2使用的状态管理是vuex,vue3使用的Pinia。
- 生命周期也有所不同。组件间传参也有些不一样。
- 性能提升,渲染速度变快,并且vue3的打包体积更小。
2、原理方面
- 双向绑定方式不同,vue2采用obiect.defineProperty,会遍历对象的每个属性,getter 和 setter,从而实现对这些属性的拦截和依赖收集。vue3采用的是Proxy,可以直接监控对象的操作,包括属性的添加、删除以及各种类型的访问。
- 虚拟dom优化,优化了diff算法。
- Tree-shaking支持,去除无用的引用。