美文网首页
vue指令防抖

vue指令防抖

作者: Z丿Sir | 来源:发表于2019-10-30 11:49 被阅读0次

创建一个debounce文件夹,一个index.js一个debounce.js

import Debounce from './debounce'
const install = function(Vue) {
  Vue.directive('Debounce', Debounce)
}
if (window.Vue) {
  window.Debounce = Debounce
  Vue.use(install); // eslint-disable-line
}
Debounce.install = install
export default Debounce

import { debounce } from '@/utils/index'

let debounceEle 
let debounceFn
export default {
  bind(el, { name, value, oldValue, expression, arg, modifiers }) {
    debounceEle = debounce(value, 500, true)
    debounceFn = function(e){
      if (e.keyCode === 13) {
        debounceEle()
      }
    }
    const {enter, click} = modifiers
    if (enter) {
      // 元素上绑定回车事件
      el.addEventListener('keydown', debounceFn, false)
    }
    if (click) {
      el.addEventListener('click', debounceEle, false)
    }
  },
  unbind(el, { modifiers }) {
    const {enter, click} = modifiers
    if (enter) {
      el.removeEventListener('keydown', debounceFn)
    }
    if (click) {
      el.removeEventListener('click', debounceEle)
    }
    debounceEle = null
  }
}

组件中使用

import debounce from "@/directive/debounce/index.js"
directives:{ debounce },
// DOM使用
 <el-button type="primary" v-debounce.click="()=>{queryList(1)}">查询</el-button>
// JS中使用
  mounted() {
    // todo 回车事件
    let _this = this;
    this.debounce = debounce(function(){
       _this.queryList(1)
    },500,false)
    document.onkeydown = function(e) {
        _this.debounce()
    };
  },

相关文章

  • vue指令防抖

    创建一个debounce文件夹,一个index.js一个debounce.js 组件中使用

  • vue防抖节流指令

    参考:https://juejin.im/post/5e328dd85188254e1b0c6e5b 在src下新...

  • Vue自定义指令--拖拽,防抖 节流

    拖拽指令 防抖 节流

  • 项目常用代码

    节流 } 防抖 } 页面滚动(requestAnimationFrame) vue全局点击防抖

  • vue自定义指令防抖

    v-debounce 背景:在开发中,有些提交保存按钮有时候会在短时间内被点击多次,这样就会多次重复请求后端接口,...

  • Angular防抖指令

    第一次在掘金上记笔记,使用Angular小半年了。深感Angular中文资料稀少,故记录一些文章供自己翻阅,同时希...

  • Vue 防抖

    原理: 当持续触发某事件时,在一定时间间隔内执行回调函数,如果在这个时间间隔内重复执行此事件,重新开始计时。 使用...

  • 防抖 vue

    防抖: 触发高频事件后n秒内只执行一次,如果n秒内再次触发就会重新计算时间。 按钮 ................

  • vue3常用指令

    防抖 输入框防抖 防抖这种情况设置一个v-throttle自定义指令来实现 图片懒加载 设置一个v-lazy自定义...

  • 在 Vue 中使用lodash对事件进行防抖和节流

    事件节流和防抖是提高性能或降低网络开销的好方法。虽然 Vue 1曾经支持对事件的节流和防抖,但是在Vue 2中为了...

网友评论

      本文标题:vue指令防抖

      本文链接:https://www.haomeiwen.com/subject/nprovctx.html