- 同一元素上使用的v-if和v-for优先级已更改,但不推荐同时使用v-if和v-for
- 组件事件需要在emits选项中声明
- destroyed 生命周期选项被重命名为 unmounted
- beforeDestroy生命周期选项被重命名为beforeUnmount
- 自定义指令的API已更改为与组件生命周期一致
- 新增了三个组件:Fragment支持多个根节点、Suspense可以在组件渲染之前的等待时间显示指定内容 Teleport可以让子组件能够在视觉上跳出父组件(如父组件overflow:hidden)
- 新增指令 v-memo,可以缓存html模板,比如v-for列表不会变化的就缓存,简单说就是用内存换时间。
- 用Proxy代替Object.defineProperty重构了响应式系统,可以监听到数组下标变化,及对象新增属性,因为监听的不是对象属性,而是对象本身,还可拦截apply has 等13种方法
- 重构了虚拟DOM,在编译时会将事件缓存、将 slot编译为lazy函数、保存静态节点直接复用(静态提升)、以及添加静态标记、Diff算法使用最长递增子序列优化了对比流程,使得虚拟DOM 生成速度提升200%
- 支持在<sty1e></sty1e>里使用v-bind,给CSS绑定IS变量(coor:v-bind(str))
- ·新增Composition API可以更好的逻辑复用和代码组织,同一功能的代码不至于像以前一样太分散,虽然 Vue2中可以用mixin来实现复用代码,但也存在问题,比如方法或属性名会冲突,代码来源也不清楚等
- 全局函数set和delete以及实例方法$set和$de1ete移除。基于代理的变化检测已经不再需要它们了。
- 毕竟Vue3 是用 Ts写的,所以对TS的支持度更好
- Vue3 不兼容 IE11
- $on,$off和$once实例方法已被移除,组件实例不再实现事件触发接口。
vue3:23、vue2到vue3的变化
最新推荐文章于 2024-04-30 13:50:55 发布