博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Js闭包应用场合,为vue的watch加上一个延迟器
阅读量:4975 次
发布时间:2019-06-12

本文共 544 字,大约阅读时间需要 1 分钟。

利用vue的watch可以很简单的监听数据变化

而watch来侦听数据继而调用业务逻辑是一种十分常见的模式

最典型的就是自动搜索功能,如下图,这里我们用watch侦听被双向绑定的input值,而后触发后端请求获取数据

但是显然如果不加任何处理的话,没输入一次字符都会请求一个接口。为了解决这个问题必须在watch上面加上一个延迟器。

延迟器必须内部有一个定时器来标记重入,js没有类似c那样的局部静态变量,所以我使用闭包来实现。

不说废话,直接上代码

function delayer (action, delay = 600) {    let timer = -1;    return nv => {        clearTimeout(timer);        timer = setTimeout(() => {            action(nv);        }, delay);    };}

 watch

watch: {    searchWord: delayer(nv => {        console.log(nv);    }),},

 

转载于:https://www.cnblogs.com/jimaojin/p/9949965.html

你可能感兴趣的文章
2018 Multi-University Training Contest 10 - Count
查看>>
HDU6203 ping ping ping
查看>>
构建之法阅读笔记02
查看>>
Fireworks基本使用
查看>>
.net Tuple特性
查看>>
Java基础常见英语词汇
查看>>
nginx启动、关闭命令、重启nginx报错open() "/var/run/nginx/nginx.pid" failed
查看>>
BZOJ 3097 Hash Killer I
查看>>
UINavigationController的视图层理关系
查看>>
html阴影效果怎么做,css 内阴影怎么做
查看>>
BZOJ1026: [SCOI2009]windy数
查看>>
样板操作数
查看>>
64位UBUNTU下安装adobe reader后无法启动
查看>>
组件:slot插槽
查看>>
Nginx配置文件nginx.conf中文详解(转)
查看>>
POJ 1308 Is It A Tree?(并查集)
查看>>
N进制到M进制的转换问题
查看>>
springIOC第一个课堂案例的实现
查看>>
求输入成绩的平均分
查看>>
php PDO (转载)
查看>>