色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

vue debounce無效

張吉惟2年前9瀏覽0評論

最近在開發Vue項目中,遇到了一個奇怪的問題:使用了Vue的debounce方法,卻無法防抖成功。

我在Vue的methods中定義了一個防抖函數:

debounce: _.debounce(function() {
console.log('debounce success');
}, 1000)

在頁面中,我又定義了一個按鈕,綁定了debounce方法:

然而,當我點擊按鈕時,發現console.log會被立即執行。而我期望的是,只有等待1000ms之后再執行。我調試了很久,發現沒有什么錯誤。

后來,我在網上查了一下資料,發現了這個問題的原因:

Vue的debounce方法是用lodash的debounce方法實現的。而lodash的debounce方法在使用時,會默認返回一個新的函數。所以,如果我們把這個函數綁定到按鈕的click事件上,那么每點擊一次按鈕,都會生成一個新的函數去防抖。

要解決這個問題,我們只需要將debounce方法返回的函數緩存起來,再綁定到click事件上即可:

methods: {
debounceAction: function() {
this.debouncedFn();
}
},
created: function() {
this.debouncedFn = _.debounce(function() {
console.log('debounce success');
}, 1000);
}

然后,我們就可以在按鈕上這樣調用我們的防抖函數了:

使用緩存函數的方法可以有效解決Vue中debounce無效的問題,希望這篇文章能對您有所幫助。