另辟蹊径,分享一种防止按钮重复点击解决方案

743 阅读1分钟

1.需求场景背景

相信各位前端开发的小伙伴都会遇到这样的需求,点击一个按钮触发接口后,响应之前不允许再点击.

2.常用方案

偷懒的方案

直接给按钮加个防抖功能.正常接口响应快的话该方案是没有问题的.但是接口往往都没法如愿的快.比如5s,10s才响应,用户看不到响应一般都会疯狂再点点点.防抖时间很难动态控制

一般人方案

一般采用的方案就是加一个loading变量,在请求响应前后去控制变量loading为true和false.这种方案本身并没有任何问题,但是当项目中有很多这种需求,处理起来就会变得非常繁琐.

进阶方案

我们对button动点歪心思,让一切变得简单.上代码,这边用的vue单文件组件作为示例

image.png

使用时我们只要click方法返回是个promise即可,其他一切如常.用法如下

image.png