vue自定義指令節流


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);
    });
  }
});


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM