lodash throttle 不生效

466 阅读1分钟

throttle

throttle 在vue中的应用

开发中在vue的配置项中如下 使用throttle 发现为生效

emitOpenPdf(url) {
    throttle(() => {
    	//执行代码
    },wait);
},

这种是因为调动throttle的this指向不明确

可以修改为

emitOpenPdf(url) {
    throttle(() => {
    	//执行代码
    },wait).call(this.);
},

​ 但是这种修改适用于 点击事件,scroll 等用户主动触发的事件,被动函数 会发现emitOpenPdf执行了 但是throttle内的函数体未执行,

可使用如下方法解决

emitOpenPdf(url) {
    this.throttle(url); //给throttle 内的函数体传参
    // openPdf(url);
},
throttle: throttle(function(url) {
        openPdf(url);
}, 2500, { 'trailing': false }), 

如果绑定事件没有起到节流的效果也可以使用@event = "throttle " 解决