import Vue from "vue";
// vue自定義指令節流
Vue.directive("throttle", {
bind: function(el, binding, vnode) {
let { delay, fn } = binding.value; //參數:時間,執行函數
delay = delay ? delay : 500; //如果傳入時間,使用傳入的時間,否則默認500
let timer = null;
el.addEventListener("click", () => {
if (timer) return; //定時器存在,不在執行, 不存在啟用,執行
timer = setTimeout(() => {
fn.apply(this, arguments);
timer = null;
}, delay);
});
}
});