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

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

时间:2023-01-09 16:33:50浏览次数:54  
标签:Vue setVueClickGlobalThrottle 节流 Button js VueJsDev 全局 函数

[VueJsDev] 目录列表
https://www.cnblogs.com/pengchenggang/p/17037320.html

Button的全局节流

::: details 目录

目录
:::

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

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

Step. 1: 注册函数

将函数注入到 Vue 当中

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

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

并不是所有按钮需要节流

<Button :notThrottle="true"> &#8593; </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

标签:Vue,setVueClickGlobalThrottle,节流,Button,js,VueJsDev,全局,函数
From: https://www.cnblogs.com/pengchenggang/p/17037421.html

相关文章

  • [VueJsDev] 基础知识 - asyncTool.js异步执行工具
    [VueJsDev]目录列表https://www.cnblogs.com/pengchenggang/p/17037320.htmlasyncTool.js异步执行工具:::details目录目录asyncTool.js异步执行工具Step.1:getA......
  • [VueJsDev] 其他知识 - 单词本
    [VueJsDev]目录列表https://www.cnblogs.com/pengchenggang/p/17037320.html单词本z这里的单词就是很随性的记忆,来源有生活中能见到的,或者抖音见到的等等~~:::detai......
  • [VueJsDev] 其他知识 - NestJS 学习内容
    [VueJsDev]目录列表https://www.cnblogs.com/pengchenggang/p/17037320.htmlNestJS学习内容NestJS学习总结Step.1:全局安装包pnpmadd-g@nestjs/clinodemon......
  • [VueJsDev] 目录列表
    [VueJsDev]目录列表云服务器域名就一年,gitee上有不给发布,没办法https://www.vuejsdev.com/还是迁移到博客园吧。目录列表快速入门开发前小知识vue项目根目录配置......
  • [VueJsDev] 日志 - nginxConfig 配置文件备份
    [VueJsDev]目录列表https://www.cnblogs.com/pengchenggang/p/17037320.htmlnginxConfig配置文件备份:::details目录目录nginxConfig配置文件备份Step.1:服务器......
  • [VueJsDev] 日志 - BBTime-LOG
    [VueJsDev]目录列表https://www.cnblogs.com/pengchenggang/p/17037320.htmlBBTime-LOG:::details目录目录BBTime-LOGLog.1:AutoNumber成功发布到vscode插件市场......
  • button和pannel实现折叠效果
    今天在网上查了下折叠式菜单,资源倒是不少,但是实现过程极为繁琐,看到都怕怕,ctrl+c的勇气都没有,于是自己尝试着弄一下,没想到还真的给整出来了,最终效果还蛮不错的。需要借助pan......
  • ExtJS-UI组件-Segmented Button
    更新记录详细更新记录```2023年1月6日从笔记迁移到博客。```转载请注明出处:https://www.cnblogs.com/cqpanda/p/17031386.htmlExtJS教程汇总:https://www.cnblo......
  • P11_组件-button和image组件的基本用法
    其它常用组件button按钮组件功能比HTML中的button按钮丰富通过open-type属性可以调用微信提供的各种功能(客服、转发、获取用户授权、获取用户信息等)image......
  • P11_组件-button和image组件的基本用法
    其它常用组件button按钮组件功能比HTML中的button按钮丰富通过open-type属性可以调用微信提供的各种功能(客服、转发、获取用户授权、获取用户信息等)image......