watch和setTimeout的一个应用技巧
使用watch和setTimeout可以监听输入框内容,输入内容停止后搜索。
效果如下所示,在停止输入后,就执行搜索方法。
<div id="app">
<input v-model="content"/>
</div>
<script>
var vm = new Vue({
el:"#app",
data:{
content:"",
timer:0
},
methods:{
search(){
clearTimeout(this.timer);
this.timer = setTimeout(()=>{
if(this.content.trim()!==""){
console.log("输入内容为:"+this.content);
}
},2000);
}
},
watch:{
content(newVal,oldVal){
this.search();
}
}
});
</script>
使用watch监听输入的内容,当输入后就开始清除定时器,如果用户持续输入,那么之前设置的定时器就会被清除掉,重新设置新定时器。
当用户停止了2秒没有任何内容输入时,才会发送请求。