面试题答案
一键面试实现思路
- 在Vue组件中,使用
watch
监听输入框的值变化。 - 为防止频繁输入,采用防抖或节流技术。这里以防抖为例,防抖意味着在用户停止输入一定时间后才执行搜索操作。
- 利用
immediate: true
选项,在组件创建时立即执行一次搜索。
代码示例
<template>
<div>
<input v-model="searchInput" placeholder="请输入搜索内容">
</div>
</template>
<script>
import { debounce } from 'lodash';
export default {
data() {
return {
searchInput: ''
};
},
watch: {
searchInput: {
immediate: true,
handler: debounce(function(newValue) {
this.performSearch(newValue);
}, 300)
}
},
methods: {
performSearch(query) {
// 实际的搜索逻辑,例如调用API
console.log('执行搜索,搜索内容:', query);
}
}
};
</script>
在上述代码中:
import { debounce } from 'lodash';
引入了lodash库中的防抖函数。watch
中的searchInput
设置了immediate: true
确保组件创建时立即执行一次handler
。handler
使用debounce
包裹,延迟300毫秒执行performSearch
方法,从而避免用户频繁输入导致的性能问题。performSearch
方法可以替换为实际的搜索API调用。