lodash中的防抖函数怎么使用 实现这个功能 vue3项目中初始页面默认“姓名”搜索,可切换为“部门”,支持录入2-40个字符,至少录入2个字后,2秒内未输入,则自动按照输入内容进行模糊查询。
时间: 2024-11-27 08:10:28 浏览: 8
在 Vue3 中使用 lodash 的防抖(debounce)函数,首先需要安装 lodash,可以通过 npm 或者 yarn 安装:
```bash
npm install lodash
# 或者
yarn add lodash
```
然后在组件中引入防抖函数 `_.debounce`:
```javascript
import _ from 'lodash';
```
接下来,我们可以创建一个计算属性来处理搜索逻辑。假设我们有一个名为 `searchQuery` 的数据字段用于存储当前输入值,同时有 `onInputChange` 方法监听输入变化:
```html
<template>
<input v-model="searchQuery" @input="handleInputChange" />
</template>
<script setup>
const { debounce } = _.lodash; // 简化导入
let searchQuery = ref('');
function handleInputChange(e) {
const debouncedSearch = debounce(() => {
if (e.target.value.length >= 2) {
// 开始模糊查询逻辑,这里仅做示例,实际请替换为你的 API 调用
doYourSearch(query => console.log('Searching for:', query));
}
}, 2000); // 防抖时间设为2秒
if (e.target.value.trim() !== '') { // 如果有输入且非空
debouncedSearch(); // 执行搜索
} else {
// 输入清空时停止防抖计时器
debouncedSearch.cancel();
}
}
</script>
```
在这个例子中,当用户连续输入2个及以上字符且超过2秒内未继续输入,`doYourSearch` 函数会触发一次模糊查询。如果用户清空输入,已启动的防抖计时器会被取消。
阅读全文