自定义Ref
作用
创建一个自定义的ref,并对其依赖项跟踪和更新触发进行显示控制
实现防抖效果
页面防抖就是在事件触发的时候,并没有马上急着去做处理,而是在等待一段时间后再去执行。在该时间范围内只发起一次请求,以最后一次为准
示例
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 32 33 34 35 36 37 38 39 40 41
| <template> <input type="text" v-model="keyword"> <h3>{{keyword}}</h3> </template> <script> import {ref,customRef} from 'vue' export default { name: 'App', setup(){ function myRef(value,delay){ let timer return customRef((track,trigger)=>{ return { get(){ track() //通知Vue追踪value的变化 return value }, set(newValue){ clearTimeout(timer) timer=setTimeout(()=>{ value=newValue trigger() //通知Vue去重新解析模板 },delay) } } }) } // let keyword=ref('hello') //使用vue提供的ref let keyword=myRef('hello',500) return { keyword } } } </script> <style> </style>
|