跳到主内容

Vue3基础面试题

本文总结了 Vue3 框架相关的面试题

Vue3 如何实现响应式

vue2 是针对对象是通过 Object.defineProperty 来实现的,针对数组是通过重写数组的原型链上的方法实现的 pushpopshiftunshiftsplicesortreverse,这种实现方案的不足之处有以下两点

  1. 对于对象,vue 只能针对初始化的对象,或者通过 Vue.set / this.$set 来对新的属性监听,直接过 obj.[key] 来赋值则无法实现监听,还有也无法监听到 delete obj.key (删除对象属性)。
  2. 对于数组,如果直接修改数组下标,也无法实现响应式更新。

Vue3 通过 JS 自带的 Proxy 对象 来实现的,可以实现 vue2 的监听对象和数组的功能,对 vue 的不足之处,也得到了完美的解决

查看更新 Vue3 实现的细节,可以阅读 Vue3 响应式原理