antd vue 创建一个节流 搜索下拉框
时间: 2023-08-12 16:07:46 浏览: 161
antd多选下拉框一行展示的实现方式
5星 · 资源好评率100%
您可以使用 `debounce` 或 `throttle` 函数来创建一个节流搜索下拉框。这里提供一个使用 `debounce` 的示例:
```vue
<template>
<div>
<a-select
v-model="value"
:placeholder="placeholder"
:dropdown-style="{ maxHeight: '300px' }"
@search="handleSearch"
>
<a-select-option
v-for="option in options"
:key="option.value"
:value="option.value"
>
{{ option.label }}
</a-select-option>
</a-select>
</div>
</template>
<script>
import { debounce } from 'lodash-es';
import { getOptions } from '@/api'; // 获取选项列表的 API
export default {
data() {
return {
options: [],
value: undefined,
placeholder: '请输入关键字进行搜索',
};
},
methods: {
handleSearch: debounce(async function(value) {
// 调用接口获取选项列表,这里使用 async/await 写法
const res = await getOptions({ keyword: value });
if (res.code === 0) {
this.options = res.data;
}
}, 500), // 用户输入停止 500ms 后才会执行 handleSearch 函数
},
};
</script>
```
这个示例使用了 `debounce` 函数来限制 `handleSearch` 函数的调用频率,当用户输入时,API 请求只会在输入停止不少于 500ms 时才会发送,以减少不必要的请求。
阅读全文