-
-
Notifications
You must be signed in to change notification settings - Fork 190
Open
Description
// 你的答案
<script setup lang='ts'>
/**
* Implement the custom directive
* Make sure the `onClick` method only gets triggered once when clicked many times quickly
* And you also need to support the debounce delay time option. e.g `v-debounce-click:ms`
*
*/
const VDebounceClick = {
mounted:(el,binding)=>{
let timer;
el.addEventListener('click',()=>{
if(timer){
clearTimeout(timer)
}
timer=setTimeout(binding.value,Number(binding.arg))
})
}
}
function onClick() {
console.log("Only triggered once when clicked many times quickly")
}
</script>
<template>
<button v-debounce-click:200="onClick">
Click on it many times quickly
</button>
</template>