整体区别
- 使用proxy代替defineProperty实现数据相应试
- vue3支持多个根元素
- 更好的ts支持
- 体积比vue2更小,性能提升,运行速度更快
- diff算法优化,vue2中的虚拟dom是全量的对比,vue3新增了静态标记(patchflag),与上次虚拟节点对比时,只对比带有(patchflag)标记的节点(动态数据所在的节点)
- 静态提升,vue2无论元素是否参与更新,每次都会重新创建然后再渲染。vue3对于不参与更新的元素,会做静态提升,只会被创建一次,在渲染时直接复用即可。
- 组合式api将逻辑代码集中,便于维护
vue2.x与vue3.x语法区别
- vue2中,v-for的优先级高于v-if,vue3则相反
- vue3支持组合式函数,可以进行逻辑复用
- vue3已不推荐使用mixins,缺点,来源不明,命名空间冲突,隐式的跨mixin交流
- directive钩子函数不同
- v-model在组件上的展开形式不同,vue2为value,vue3为modelValue
- vue3提供无构建步骤的vue版本,petite-vue
- 模板中的组件名vue3不再使用短横线,而是大驼峰
- vue3的编译时宏,不需要导入可直接使用
- 默认关闭实例引用($parent等),必须手动暴露出去
- vue3的监听对象,watch默认是深度监听,vue2则不是
router3.x与router4.x
- 3.x通过mode字段设置hash还是history模式,4.x通过history字段设置。
- 在4.x中routes 数组的顺序并不重要!3.x则规定含有通配符的路由应该放在最后。
- 3.x transition包裹router-view,4.x router-view包裹transition
- 4.x新增动态路由
网友评论