0%

customRef

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

}


}