1、vue3的新特性 答:
1、响应系统的变动
由原来的Object.defineProperty 的getter 和 setter,改变成为了ES2015 Proxy 作为其观察机制。Proxy的优势:消除了以前存在的警告,使速度加倍,并节省了⼀半的内存开销。
2、虚拟DOM重写(Virtual DOM Rewrite)
虚拟 DOM 从头开始重写,我们可以期待更多的编译时提⽰来减少运⾏时开销。重写将包括更有效的代码来创建虚拟节点。
3、组件渲染的优化(优化插槽⽣成)
Vue2当中在⽗组件渲染同时,⼦组件也会渲染。 Vue3就可以单独渲染⽗组件、⼦组件。
4、静态树提升(Static Tree Hoisting)
使⽤静态树提升,这意味着 Vue 3 的编译器将能够检测到什么是静态组件,然后将其提升,从⽽降低了渲染成本。它将能够跳过未整个树结构打补丁的过程。
静态树提升(.png
5、静态属性提升(Static Props Hoisting)
此外,我们可以期待静态属性提升,其中 Vue 3 将跳过不会改变节点的打补丁过程。总体来说:1. 更快 2. 更⼩ 3. 更容易维护 4. 更加友好 5. 更容易使⽤
2.vue3对⽐vue2有哪些不同?答:
3、Proxy 相⽐于 defineProperty 的优势
Object.defineProperty() 的问题主要有三个:
不能监听数组的变化
必须深层遍历嵌套的对象必须遍历对象的每个属性
Proxy 在 ES2015 规范中被正式加⼊,它有以下⼏个特点:
针对对象:针对整个对象,⽽不是对象的某个属性,所以也就不需要对 keys 进⾏遍历。这解决了上述 Object.defineProperty() 第⼆个问题
* ⽀持数组:Proxy 不需要对数组的⽅法进⾏重载,省去了众多 hack,减少代码量等于减少了维护成本,⽽且标准的就是最好的。
除了上述两点之外,Proxy 还拥有以下优势:
Proxy 的第⼆个参数可以有 13 种拦截⽅法,这⽐起 Object.defineProperty() 要更加丰富
Proxy 作为新标准受到浏览器⼚商的重点关注和性能优化,相⽐之下 Object.defineProperty() 是⼀个已有的⽼⽅法。4、vue2为什么不使⽤proxy? 答: 兼容性
5、vue3性能⽐vue2好的原因? 答:1.diff算法优化
2.静态提升hoistStatic
3.事件侦听器缓存 cacheHandles
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务