何为防抖,快速输入的时候,我们只针对最后一次进行触发。
1、借助事件队列和setTimeout定时器来实现:
2、借助ajax中的axios来实现
watch : {
message(newVal){
var that = this;
// 取消上一次请求
this.cancelRequest();
axios.get('/api/searchList?cityId=10&kw='+ newVal, {
cancelToken: new axios.CancelToken(function(c) {
that.source = c;
})
}).then((res) => {
// 在这里处理得到的数据
//数据逻辑处理
}).catch((err) => {
if (axios.isCancel(err)) {
console.log('Rquest canceled', err.message); //请求如果被取消,这里是返回取消的message
} else {
//handle error
console.log(err);
}
})
}
},
节流
借助定义的变量和setTimeout来实现一定时间内只执行一次