码迷,mamicode.com
首页 > 其他好文 > 详细

vue实现简单防抖(watch input)

时间:2019-06-07 11:11:11      阅读:326      评论:0      收藏:0      [点我收藏+]

标签:图片   typeof   info   eth   mamicode   col   性能   change   inf   

watch监控input值,如果用户快速输入值,就会持续触发watch 事件导致掉帧,用户体验受到影响,甚至加大服务器的压力
通过防抖来优化性能

<input type="text" v-model="searchStr">


const app = new Vue({
el:"#app",
data:{
searchStr:"",
fun:null
},
watch:{
searchStr: function (str) {
if (typeof str ===‘string‘){
if (str.trim().length!==0){
this.debounce(this.changeStr,1000);
}else {}
}
}
},
methods:{
debounce:function(fn,wait){
if (this.fun!==null){
clearTimeout(this.fun)
}
this.fun = setTimeout(fn,wait)
},
changeStr:function(data){
console.log(data)
},
}

效果:当我持续快速向input输入时,只有停顿1秒才执行一次事件

技术图片

vue实现简单防抖(watch input)

标签:图片   typeof   info   eth   mamicode   col   性能   change   inf   

原文地址:https://www.cnblogs.com/King-Jin/p/10987500.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!