vue防抖 指令 v-debounce

这篇具有很好参考价值的文章主要介绍了vue防抖 指令 v-debounce。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.在utils中创建dom.js

/**
 * 功能:dom绑定事件
 * 参数:element(dom节点)
 *      event(事件名称)
 *      handler(回调)
 *返回:无
 * */
 export const on = (function() {
    if (document.addEventListener) {
      return function(element, event, handler) {
        if (element && event && handler) {
          element.addEventListener(event, handler, false)
        }
      }
    } else {
      return function(element, event, handler) {
        if (element && event && handler) {
          element.attachEvent('on' + event, handler)
        }
      }
    }
  })()
  
  /**
   * 功能:移除dom绑定的事件
   * 参数:element(dom节点)
   *      event(事件名称)
   *      handler(回调函数)
   * 返回:无
   * */
  export const off = (function() {
    if (document.removeEventListener) {
      return function(element, event, handler) {
        if (element && event) {
          element.removeEventListener(event, handler, false)
        }
      }
    } else {
      return function(element, event, handler) {
        if (element && event) {
          element.detachEvent('on' + event, handler)
        }
      }
    }
  })()

2.在directive 中创建clickDebounce.js (名字随便)

import { debounce } from 'throttle-debounce'
import { on, off } from '@/utils/dom'

let fn = null
export default {
  name: 'debounce',
  install(Vue, { defaultTime = 600 } = {}) {
    Vue.directive('debounce', {
      bind(el, { value, arg, modifiers }) {
        fn = debounce(arg || defaultTime, value)
        on(el, 'click', fn)
      },

      unbind: function(el) {
        if (fn) {
          off(el, 'click', fn)
        }
      }
    })
  }
}

3.main.js中注册

//防抖
import debounce from './directive/clickDebounce'
Vue.use(debounce)

4. 使用

v-debounce=""

文章来源地址https://www.toymoban.com/news/detail-560659.html

到了这里,关于vue防抖 指令 v-debounce的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • flutter开发实战-防抖Debounce与节流Throttler实现

    flutter开发实战-防抖Debounce与节流Throttler实现 在开发中,经常遇到某些按钮或者界面操作需要做防抖或者节流操作。这里记录一下实现。 防抖Debounce 当有可能在短时间内对一个方法进行多次调用时,需要防抖,并且希望只有最后一次调用真正调用目标方法。因此,基本上每个

    2024年02月07日
    浏览(27)
  • vue自定义防抖指令

    main.js中 使用 实现效果,控制台2秒输出一次

    2024年02月07日
    浏览(27)
  • vue3自定义指令之防抖

    我们使用 vue 时,有时候需要用到自定义指令,例如一个防抖指令 现在有一个需求,用户在点击某个按钮时,我不希望用户在疯狂点击后,每次点击都会触发事件,像服务器发送请求,这并不是我们预期的,所以我们需要在用户点击是做防抖处理。那么怎么做到方便复用的解

    2024年02月16日
    浏览(29)
  • 一文搞懂如何在 React 中使用 防抖(Debounce)和 节流(Throttle)

    在前端的日常开发中,经常会使用到两个函数防抖(Debounce)和节流(Throttle),防抖函数可以有效控制在一段时间内只执行最后一次请求,例如搜索框输入时,只在输入完成后才进行请求接口。而节流函数则是每隔一段时间就执行一次请求。 在 React 应用开发时,不同于普通

    2024年02月09日
    浏览(26)
  • vue-pc端实现按钮防抖处理-自定义指令

    前言 我们经常在移动端会处理按钮和输入框的防抖和节流处理,在pc端很少进行这样的操作 但是在pc端也是可以进行按钮的防抖操作,这样也是比较合理,可以不用但不可以不会 我们只要配合vue项目自定义指令加上全局注册,就可以实现按钮的防抖操作。 并且这种方式是在

    2024年02月13日
    浏览(28)
  • 自定义指令实现按钮防抖

    项目中经常会遇到防抖这个场景,比如,页面滚动事件;输入框自动搜索等。为了方便统一管理,提高项目代码的可维护性。我们可以利用Vue的自定义指令完成这个功能。 生命周期/钩子函数 自定义指令拥有自身的生命周期,如下所示: 生命周的参数 el :指令绑定到的元素

    2024年01月21日
    浏览(31)
  • Vue 3 中的极致防抖/节流(含常见方式防抖/节流)

    各位朋友你们好呀。今天是立春,明天就是正月十五元宵节了,这种立春 + 元宵相隔的时候,可是很难遇到的,百年中就只有几次。在这提前祝大家元宵快乐。 今天给大家带来的是 Vue 3 中的极致防抖/节流(含常见方式防抖/节流) 这篇文章,文章中不仅会讲述原来使用的防

    2024年02月01日
    浏览(29)
  • vue 防抖与节流用法

    一、html 二、JS 三、公共方法 common.js

    2024年02月10日
    浏览(25)
  • 1 vue防抖和限流

    防抖(Debouncing)是一种前端开发中常用的技术,用于限制函数的执行频率。在防抖的机制下,一个函数在一定时间内只会执行一次,即使它被频繁地调用。 具体来说,防抖的实现方式是设置一个定时器,在每次函数被调用时,先清除之前的定时器,然后重新设置一个新的定

    2024年01月19日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包