Vue 防止短时间内连续点击后多次触发请求的操作


Posted in Javascript onNovember 11, 2020

如果连续点击提交按钮,可能会重复提交数据,导致出错,解决的方法可以使用disabled限制点击,感觉体验不是太好,所有给大家分享下面的方法

<el-button @click="throttle()">测试</el-button> 
export default {
 data(){
  return {
   lastTime:0 //默认上一次点击时间为0 
  }
 }
}
methods:{
 throttle(){
  //获取当前时间的时间戳
  let now = new Date().valueOf();
  //第一次点击
  if(this.lastTime == 0){
   console.log('触发事件');
   this.lastTime = now;
  }else{
   if((now-this.lastTime) > 2000){
    //重置上一次点击时间,2000是我自己设置的2秒间隔,根据自己的需要更改
    this.lastTime = now;
    console.log('间隔大于2秒,触发方法');
    //添加自己要调用的方法
   }else{
    console.log('不触发');
   }
  }
  },
}

这种方法虽然很好,但是遇到请求超时的情况可能不是太好处理(网络原因、数据太大)。考虑通过后端是否返回res来控制。方法还有待提高!仅供参考~

补充知识:解决vuex中module过多时,需一个个引入的问题

在项目开发中,使用vuex,如果项目过大,vuex就需要模块化,但是如果module分的过多,我们就需要在store的index.js中一个个引入,这样未免太麻烦,所以webpack出来了个配置,可以解决这个问题,无需多次引入,懒癌患者福音,

以下是解决方案

import Vue from 'vue'
import Vuex from 'vuex'
import getters from './getters'
Vue.use(Vuex)
const modulesFiles = require.context('./modules', true, /\.js$/)
const modules = modulesFiles.keys().reduce((modules, modulePath) => {
 const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1')
 const value = modulesFiles(modulePath)
 modules[moduleName] = value.default
 return modules
}, {})
const store = new Vuex.Store({
 modules,
 getters
})
export default store

配置了这个后就无需一个个引入模块了;

以上这篇Vue 防止短时间内连续点击后多次触发请求的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery实现html表格动态添加新行的方法
May 28 Javascript
轻松使用jQuery双向select控件Bootstrap Dual Listbox
Dec 13 Javascript
基于HTML+CSS,jQuery编写的简易计算器后续(添加了键盘监听)
Jan 05 Javascript
jQuery中fadein与fadeout方法用法示例
Sep 16 Javascript
Node.js测试中的Mock文件系统详解
Nov 21 Javascript
JS仿京东移动端手指拨动切换轮播图效果
Apr 10 Javascript
Angularjs在360兼容模式下取数据缓存问题的解决办法
Jun 22 Javascript
JS散列表碰撞处理、开链法、HashTable散列示例
Feb 08 Javascript
jQuery模拟html下拉多选框的原生实现方法示例
May 30 jQuery
微信小程序使用echarts获取数据并生成折线图
Oct 16 Javascript
jQuery实现王者荣耀手风琴效果
Jan 17 jQuery
javascript实现电商放大镜效果
Nov 23 Javascript
Vue 401配合Vuex防止多次弹框的案例
Nov 11 #Javascript
VUE-ElementUI 自定义Loading图操作
Nov 11 #Javascript
在elementui中Notification组件添加点击事件实例
Nov 11 #Javascript
vue.js+element 默认提示中英文操作
Nov 11 #Javascript
Vue 解决在element中使用$notify在提示信息中换行问题
Nov 11 #Javascript
vue 实现element-ui中的加载中状态
Nov 11 #Javascript
解决vant框架做H5时踩过的坑(下拉刷新、上拉加载等)
Nov 11 #Javascript
You might like
Windows IIS PHP 5.2 安装与配置方法
2009/06/08 PHP
Windows PHP5和Apache的安装与配置
2009/06/08 PHP
PHP统计目录大小的自定义函数分享
2014/11/18 PHP
js中将多个语句写成一个语句的两种方法小结
2007/12/08 Javascript
jquery获取tr并更改tr内容示例代码
2014/02/13 Javascript
jQuery多项选项卡的实现思路附样式及代码
2014/06/03 Javascript
js限制checkbox选中个数以限制六个为例
2014/07/15 Javascript
超级好用的jQuery圆角插件 Corner速成
2014/08/31 Javascript
让JavaScript的Alert弹出框失效的方法禁止弹出警告框
2014/09/03 Javascript
轻松实现javascript图片轮播特效
2016/01/13 Javascript
Javascript实现汉字和拼音互转的终极方案
2016/10/19 Javascript
iOS + node.js使用Socket.IO框架进行实时通信示例
2017/04/14 Javascript
vue实现提示保存后退出的方法
2018/03/15 Javascript
vuecli3.x中轻松4步带你使用tinymce的步骤
2020/06/25 Javascript
Python cookbook(数据结构与算法)找到最大或最小的N个元素实现方法示例
2018/02/13 Python
GitHub 热门:Python 算法大全,Star 超过 2 万
2019/04/29 Python
Python学习笔记之While循环用法分析
2019/08/14 Python
浅谈Python_Openpyxl使用(最全总结)
2019/09/05 Python
python的json包位置及用法总结
2020/06/21 Python
CSS3中的transform属性进行2D和3D变换的基本用法
2016/05/12 HTML / CSS
HTML5注册表单的自动聚焦与占位文本示例代码
2013/07/19 HTML / CSS
Hawes & Curtis官网:英国经典品牌
2019/07/27 全球购物
网络技术支持面试题
2013/04/22 面试题
妇产科护士自我鉴定
2013/10/15 职场文书
房地产销售大学生自我评价分享
2013/11/11 职场文书
毕业生找工作推荐信
2013/11/21 职场文书
办公室秘书岗位职责范本
2014/02/11 职场文书
雷锋精神演讲稿
2014/05/13 职场文书
安全责任书怎么写
2014/07/28 职场文书
小学教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
2014年乡镇人大工作总结
2014/11/25 职场文书
大四学生个人总结
2015/02/15 职场文书
小区环境卫生倡议书
2015/04/29 职场文书
2015年质量管理工作总结范文
2015/05/18 职场文书
Java实现聊天机器人完善版
2021/07/04 Java/Android
Python的代理类实现,控制访问和修改属性的权限你都了解吗
2022/03/21 Python