1. 节流
1.写一个input 再写一个搜索按钮
2.搜索按钮点击事件 传入一个时间 2000就是两秒
<template>
<div class="jieliu">
<input type="text" name="" id="" v-model="value" />
<button @click="changes(2000)">搜索</button>
</div>
</template>
3.判断 如果flag 为true 就让flag =false
4.写一个定时器 定时器里面再让flag=true
export default {
data() {
return {
value: "",
flag: true,
};
},
methods: {
changes(t) {
if (this.flag == true) {
this.flag = false;
setTimeout(() => {
this.logs();
this.flag = true;
}, t);
}
},
logs() {
console.log(this.value);
},
},
};
2. 防抖
1.input事件
<template>
<div class="">
<input type="text" v-model="value" @input="changes(log, 2000)" />
<button>搜索</button>
</div>
</template>
每次触发input事件 就先清除定时器
export default {
data() {
return {
value: "",
timer: null,
};
},
methods: {
changes(fn, t) {
clearTimeout(this.timer);
this.timer = setTimeout(() => {
fn();
}, t);
},
log() {
console.log(this.value);
},
},
};
效果