44 lines
1.2 KiB
JavaScript
44 lines
1.2 KiB
JavaScript
/**
|
||
* 防抖混入
|
||
* 为Vue组件提供防抖点击功能
|
||
*/
|
||
import { debounceClick, createDebounceMethod, createDebounceMethods, clearAllDebounceStates } from '../utils/debounce.js';
|
||
|
||
export default {
|
||
methods: {
|
||
/**
|
||
* 创建防抖点击方法
|
||
* @param {string} methodName - 方法名
|
||
* @param {number} delay - 防抖延迟时间(毫秒),默认1000ms
|
||
*/
|
||
$debounceClick(methodName, delay = 1000) {
|
||
createDebounceMethod(this, methodName, delay);
|
||
},
|
||
|
||
/**
|
||
* 批量创建防抖方法
|
||
* @param {Array} methods - 方法名数组
|
||
* @param {number} delay - 防抖延迟时间(毫秒),默认1000ms
|
||
*/
|
||
$debounceMethods(methods, delay = 1000) {
|
||
createDebounceMethods(this, methods, delay);
|
||
},
|
||
|
||
/**
|
||
* 创建防抖函数
|
||
* @param {Function} func - 要防抖的函数
|
||
* @param {number} delay - 防抖延迟时间(毫秒),默认1000ms
|
||
* @param {string} key - 防抖标识符
|
||
* @returns {Function} 防抖后的函数
|
||
*/
|
||
$createDebounce(func, delay = 1000, key = null) {
|
||
return debounceClick(func.bind(this), delay, key);
|
||
}
|
||
},
|
||
|
||
beforeDestroy() {
|
||
// 组件销毁时清理防抖状态
|
||
clearAllDebounceStates();
|
||
}
|
||
};
|