vue 搜索框实现防抖功能
时间: 2023-12-30 18:21:09 浏览: 96
在Vue中实现搜索框的防抖功能,可以使用lodash工具库中的debounce函数。具体实现方法如下:
1. 在Vue组件中引入lodash库:import _ from 'lodash';
2. 在data中定义一个searchText变量,用于保存搜索框中的输入内容。
3. 在搜索框的input事件中调用一个debounce函数,将搜索框中的输入内容作为参数传入,并设置一个时间间隔,例如300ms。
4. 在debounce函数中调用一个回调函数,用于处理搜索逻辑。在回调函数中可以使用之前定义的searchText变量来获取搜索框中的输入内容。
5. 在回调函数中可以使用axios等工具发送请求,获取搜索结果并更新页面。
下面是一个示例代码:
<template>
<div>
<input type="text" v-model="searchText" @input="handleSearch">
<ul>
<li v-for="result in searchResults" :key="result.id">{{ result.name }}</li>
</ul>
</div>
</template>
<script>
import _ from 'lodash';
import axios from 'axios';
export default {
data() {
return {
searchText: '',
searchResults: []
}
},
methods: {
handleSearch: _.debounce(function() {
axios.get('/api/search', {
params: {
q: this.searchText
}
}).then(response => {
this.searchResults = response.data;
});
}, 300)
}
}
</script>
阅读全文