vue 中使用防抖和節流


1.在公共方法中(如 public.js 中),加入函數防抖和節流方法

// 防抖

export default {

  _debounce(fn, delay) {

    var delay = delay || 200;

    var timer;

    return function () {

        var th = this;

        var args = arguments;

        if (timer) {

            clearTimeout(timer);

        }

        timer = setTimeout(function () {

            timer = null;

            fn.apply(th, args);

        }, delay);

    };

  },

  // 節流

  _throttle(fn, interval) {

    var last;

    var timer;

    var interval = interval || 200;

    return function () {

        var th = this;

        var args = arguments;

        var now = +new Date();

        if (last && now - last < interval) {

            clearTimeout(timer);

            timer = setTimeout(function () {

                last = now;

                fn.apply(th, args);

            }, interval);

        } else {

            last = now;

            fn.apply(th, args);

        }

    }

  }

}

2.在需要使用的組件引用

import { public } from "@/utils/public";

3.在 methods 中使用

methods: {

    changefield: public._debounce(function(_type, index, item) {

        // do something ...    }, 200)

  }

 


免責聲明!

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



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