一、问题
  当用户在与设备进行交互时(比如点击、下滑。。。),同一个方法可能会反复触发,但并不是每次触发都是有意义的,这样只会导致损耗性能,降低用户体验。
二、解决办法
  使用定时任务,将当前任务延迟一段时间执行。在此期间若有新的任务,则清除老任务,新任务进入定时器。案例如下:

<script>
import { clearTimeout, setTimeout } from 'timers';
export default {
name: 'CitySearch',
data() {
return {
。。。。
timer: null
}
},
watch: {
keyword () {
if (this.timer) {
clearTimeout(this.timer)
}
this.timer = setTimeout(() => {
。。。。
}, 100)
}
}
}
</script>