首页 > 其他分享 >[VueJsDev] 基础知识 - Button的全局节流

[VueJsDev] 基础知识 - Button的全局节流

时间:2023-01-14 21:03:10浏览次数:55  
标签:Vue setVueClickGlobalThrottle 节流 Button func VueJsDev event 函数


Button的全局节流

::: details 目录

目录

  • ​Button的全局节流​
  • ​​Step. 1: 注册函数​​
  • ​​Step. 2: 局部节流函数失效处理​​
  • ​​Code. 3: setVueClickGlobalThrottle.js 源码​​


:::

这是一个系统默认配置 所有系统的按钮要防止连续点击的暴力测试

这不是防抖函数,防抖函数不适合这里,这是节流函数

Step. 1: 注册函数

将函数注入到 Vue 当中

// @/main.js
import setVueClickGlobalThrottle from "@/libs/common/setVueClickGlobalThrottle.js"
setVueClickGlobalThrottle(Vue) // 将所有click 进行节流处理

Step. 2: 局部节流函数失效处理

并不是所有按钮需要节流

<Button :notThrottle="true"> ↑ </Button>

Code. 3: setVueClickGlobalThrottle.js 源码

这里的节流时间为1000毫秒,具体可以自行修改

// @/libs/common/setVueClickGlobalThrottle.js
const setVueClickGlobalThrottle = Vue => {
// 节流
const on = Vue.prototype.$on
Vue.prototype.$on = function (event, func) {
// console.info('全局拦截 click $on事件 event', event)
// console.info('节流 func', func)
let previous = 0
let newFunc = func
if (event === "click") {
// console.info('全局拦截 click 事件 setVueClickGlobalThrottle')
newFunc = function () {
const now = new Date().getTime()
if (this.$attrs.notThrottle || previous + 1000 <= now) {
console.info("this, arguments", this, arguments)
func.apply(this, arguments)
previous = now
}
}
}
on.call(this, event, newFunc)
}
}

export default setVueClickGlobalThrottle

---------------------------------------------
生活的意义并不是与他人争高下,而在于享受努力实现目标的过程,结果是对自己行动的嘉奖。
↑面的话,越看越不痛快,应该这么说:

生活的意义就是你自己知道你要做什么,明确目标。没有目标,后面都是瞎扯!

新博客 ​​​https://www.VuejsDev.com​​ 用于梳理知识点



标签:Vue,setVueClickGlobalThrottle,节流,Button,func,VueJsDev,event,函数
From: https://blog.51cto.com/u_15770151/6007749

相关文章

  • [VueJsDev] 其他知识 - 单词本
    单词本z这里的单词就是很随性的记忆,来源有生活中能见到的,或者抖音见到的等等~~:::details目录目录​单词本z​​​approachable易理解的​​​​reserved保留​​​​g......
  • [VueJsDev] 日志 - 更新日志
    更新日志:::details目录目录​更新日志​​​Log.1:安装了宝塔​​​​Log.2:Markdown语法​​​​Log.3:站点环境​​​​Log.4:服务器环境​​​​Log.5:服......
  • [VueJsDev] 日志 - BBTime-LOG
    BBTime-LOG:::details目录目录​BBTime-LOG​​​Log.1:AutoNumber成功发布到vscode插件市场了​​​​Log.2:AutoNumber.js改成vscode插件了​​​​Log.3:复盘总......
  • 文件 字节流
    2、文件读取字节流FileStreamfs= new FileStream(filename,FileMode.Open,FileAccess.Read);byte[]infbytes= new byte[(int)fs.Length];fs.Read(infbytes,0,......
  • 【微信小程序入门到精通】— button 超详细讲解
    对于目前形式,微信小程序是一个热门,那么我们该如何去学习并且掌握之后去做实际项目呢?为此我特意开设此专栏,在我学习的同时也将其分享给大家!本文主要给大家介绍一下button......
  • el-button在chrome低版本(<88)中显示异常的问题
    1、问题内容:el-button按钮显示灰色背景色和边框。【浏览器版本:chrome75】 2、问题原因:el-button使用的:not(xxx,xxx,xxx),以逗号分隔的选择器列表作为参数是实验性的,尚......
  • JavaScript 防抖和节流
    JavaScript防抖和节流是两种常见的性能优化技术,用于减少函数的执行次数。防抖(debounce)是指在一段时间内,如果有多次触发事件,则只执行最后一次事件。节流(throttle)是指在一......
  • [VueJsDev] 快速入门 - vue项目根目录配置文件
    [VueJsDev]目录列表https://www.cnblogs.com/pengchenggang/p/17037320.htmlvue项目根目录配置文件:::details目录目录vue项目根目录配置文件Part.1:package.json......
  • [VueJsDev] 基础知识 - 常见编码集
    [VueJsDev]目录列表https://www.cnblogs.com/pengchenggang/p/17037320.html常用编码集:::details目录目录常用编码集Part.1:Unicode编码Part.2:ASCII编码Par......
  • [VueJsDev] 基础知识 - CommonJs VS ES Module
    [VueJsDev]目录列表https://www.cnblogs.com/pengchenggang/p/17037320.htmlCommonJsVSESModule:::details目录目录CommonJsVSESModulePart.1:CommonJsPart......