input的keyup事件的延迟问题

在做开发时候,有三个input,他们的value要影响最后一个td的值,刚开始使用的keyup事件,无奈调用后台的接口太频繁;肯定不对,后来自己想了想,就是在获取了value了,延迟在调接口,于是写了个延迟器;

html:
  <input type="text" @keyup="delay()" v-model="userData">
js:
delay(){  
    let self = this;   // this 指的是当前组件
    clearTimeout(timeId);  
    var timeId = setTimeout(function(){
        console.log(self.userData);  // 这里面就写ajax;
   },1000)       
 },

后来,我同事说函数有个节流和防抖,看了好久,尴尬,不是很懂,就暂时这样写吧,以后在优化哈;
于是突然想到,这个这么常用的功能,尤大大不可能不在vue里面封转吧,于是就文档找;vue1 是有 debounce过滤器这个属性的;可是在vue2.0后就被抛弃了;看了个 lodash;又尴尬了,都不晓得是什么鬼?
https://www.lodashjs.com/ 然后推荐用这个;

html:
<input type="text" @keyup="add()" v-model="userData">
js:
<script src="https://cdn.jsdelivr.net/lodash/4.13.1/lodash.js"></script>
add: _.debounce(function () {
         console.log(this.userData);
    }, 1000),
更加方便快捷    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值