vue 3.0 响应式系统的升级
使用Proxy对象 重写响应式系统
- 可以监听动态新增的属性
- 可以监听删除的属性
- 可以监听数组的索引和length属性
响应式核心函数
- reactive/ref/toRefs/computed
- effect
- track 手机依赖
- trigger 更新依赖
Proxy 对象中的两个小问题
第一个问题: set 和 deleteProperty 需要返回布尔类型的值
第二个问题:Proxy 和 Reflect 使用 receiver
Proxy 中的 receiver: Proxy 或者继承 Proxy 的对象
Reflect 中的receiver:如果 target对象设置了getter,getter中的this指向 receiver
const obj = {
get foo() {
console.log(this)
return this.bar
}
}
const proxy = new Proxy(obj, {
get (target, key, receiver) {
if (key === 'bar') {
console.log('value - bar')
}
return Reflect.get