vuejs-challenges
vuejs-challenges copied to clipboard
23 - 自定义ref
// 你的答案
`
/**
- Implement the function */ function useDebouncedRef(value, delay = 200) { const val= customRef((track,trigger)=>{ let timer=ref() return { get(){ track() return value }, set(newVal){ timer.value && clearTimeout(timer.value) timer.value=setTimeout(()=>{ value=newVal trigger() clearTimeout(timer.value) timer.value=null },delay) } } }) return val } const text = useDebouncedRef("hello")
/**
- Make sure the callback only gets triggered once when entered multiple times in a certain timeout */ watch(text, (value) => { console.log(value) })
just so so