Vue3基础面试题
本文总结了 Vue3 框架相关的面试题
Vue3 如何实现响应式
vue2 是针对对象是通过 Object.defineProperty
来实现的,针对数组是通过重写数组的原型链上的方法实现的 push
,pop
,shift
,unshift
,splice
,sort
,reverse
,这种实现方案的不足之处有以下两点
- 对于对象,vue 只能针对初始化的对象,或者通过
Vue.set
/this.$set
来对新的属性监听,直接过 obj.[key] 来赋值则无法实现监听,还有也无法监听到 delete obj.key (删除对象属性)。 - 对于数组,如果直接修改数组下标,也无法实现响应式更新。
Vue3 通过 JS 自带的 Proxy 对象 来实现的,可以实现 vue2 的监听对象和数组的功能,对 vue 的不足之处,也得到了完美的解决
查看更新 Vue3 实现的细节,可以阅读 Vue3 响应式原理