vue3面试题

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
 
原文地址:https://www.cnblogs.com/ygunoil/p/14464335.html