vue3
大约 1 分钟
vue3
1、vue2 和 vue3 的区别
- 生命周期:整体变化不大,只是 vue3 中大部分生命周期钩子前加上了
on,功能上都是类似的。不过在 vue3 中,这些钩子都要先引入了才能使用。destroy改为了unmount - setup:vue3 提供了一个
setup()函数和setup语法糖的形式去书写逻辑代码,即组合式 API 的写法,且在setup中,beforeCreate 和 created不需要显示的定义,因为setup本就是围绕这两个钩子运行的。 - 多根节点:在 vue3 的
template中可以有多个根节点了,但是在 vue2 中只能有一个 - 异步组件
Suspense:具体请看这里 - 传送组件
Teleport:具体请看这里 - 响应式原理:vue2 响应式使用的是
Object.defineProperty(),vue3 使用的是new Proxy(),具体请看 - 虚拟DOM 和 diff 算法:这个比较麻烦,我也理解得不是很透彻,因此先搁置,等后续闹明白了再写上去。
- ts 支持:vue3 天然支持 ts
- 打包优化
2、vue3为什么使用proxy
- proxy可以直接代理整个对象,无需递归;difineProperty只代理对象上的某个属性,要代理深层次的属性需要递归
- proxy可以监听深层次的属性变化
- proxy代理对象会生成新的对象,不会修改被代理对象本身
- proxy不兼容ie浏览器