1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| setup(){ function myRef(value,delay=500){ let timeout return customRef((track,trigger)=>{ return { get(){ console.log(`有人从myRef中读取了数据:${value}`) track()//通知Vue追踪value的变化(提前和get商量一下,让它认为这个value是可用的) return value }, set(newValue){ clearTimeout(timeout) console.log(`有人从myRef中修改了数据:${newValue}`) timeout=setTimeout(()=>{ value=newValue trigger()//通知Vue重新解析模板 },delay) } } }) } let val=myRef("hello")
return { val
}
}
|