//定义一个shallowRef函数
function shallowRef(target){
return {
//保存target数据保存起来
_value:target,
get value(){
console.log('劫持到了读取数据')
return this._value;
}
set value(val){
console.log('劫持到了修改数据,准备更新界面',val)
this._value = val
}
}
}
//定义一个ref函数
function ref(target){
target = reactive(target)
return {
//保存target数据保存起来
_value:target,
get value(){
console.log('劫持到了读取数据')
return this._value;
}
set value(val){
console.log('劫持到了修改数据,准备更新界面',val)
this._value = val
}
}
}
const ref1 = shallowRef({
name:'小明',
car:{
color:red
}
})
console.log(ref1.value) //劫持到了读取数据
ref1.value ='=' // 劫持到了修改数据,准备更新界面
ref1.value.car = '==' //劫持不到
const ref2 = ref({
name:'小明',
car:{
color:red
}
})
console.log(ref1.value) //劫持到了读取数据
ref2.value = '==' //劫持到了修改数据
ref2.value.car = '==' //劫持到了修改数据,准备更新界面