VUE2与VUE3的区别(diff VUE2 and VUE3)
diff VUE2 and VUE3
VUE2
Object.defineProperty(),重写对象的key
- 对数组能进行监听,但删除、插入、排序等频繁操的大量的读写操作,会带来性能问题
- 真正的问题是,不能对初始化时没有设置的键值做监听。所以要提供Vue.set等API
- 需要一开始初始化就递归遍历,循环监听,也是性能瓶颈之一
VUE3
使用proxy拦截读写操作,采用懒代理解决深度嵌套问题,只需要遍历第一层的属性
VUE3支持碎片(Fragments),组件支持多个根节点。不需要在组件内使用一个总的div来包裹着。
建立数据需要使用reactive,与方法/生命周期钩子,写在setup方法,更加简洁和容易控制
VUE3的设计模式给予开发者按需引入依赖包,避免多余引用导致性能问题或者打包后太大的问题,这也是VUE3一直存在的问题
computed也需要从vue引入
this在VUE2和VUE3的含义不同,前者是组件自身,能拿到props,后者拿props只能在setup函数的第一个参数里
Vite
vite 是一个基于 Vue3 单文件组件的非打包开发服务器,它做到了本地快速开发启动:
- 快速的冷启动,不需要等待打包操作;
- 即时的热模块更新,替换性能和模块数量的解耦让更新飞起;
- 真正的按需编译,不再等待整个应用编译完成,这是一个巨大的改变