uniapp 封装的防抖节流函数
时间: 2023-07-08 10:04:57 浏览: 157
以下是一个基于 Uniapp 框架封装的防抖节流函数:
```javascript
export function debounce(fn, delay = 500) {
let timer = null;
return function(...args) {
if (timer) clearTimeout(timer);
timer = setTimeout(() => {
fn.apply(this, args);
}, delay);
};
}
export function throttle(fn, interval = 500) {
let timer = null;
let last = 0;
return function(...args) {
let now = +new Date();
if (now - last < interval) {
if (timer) clearTimeout(timer);
timer = setTimeout(() => {
last = now;
fn.apply(this, args);
}, interval);
} else {
last = now;
fn.apply(this, args);
}
};
}
```
使用方式如下:
```javascript
import { debounce, throttle } from '@/utils/debounce-throttle';
// 防抖
const debouncedFn = debounce(() => {
// 函数体
}, 1000);
// 节流
const throttledFn = throttle(() => {
// 函数体
}, 1000);
```
其中,`debounce` 函数用于防抖操作,即在指定时间内,只执行最后一次触发的函数;而 `throttle` 函数用于节流操作,即在指定时间内,每隔一段时间执行一次触发的函数。可以根据实际需求选择不同的函数进行使用。
阅读全文