vue3面试题

184 阅读2分钟

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有哪些不同?

答: www.cnblogs.com/ygunoil/p/1…

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

www.cnblogs.com/ygunoil/p/1…