美文网首页Vue2
vue节流全局指令超级简单

vue节流全局指令超级简单

作者: 江南永保春 | 来源:发表于2021-08-15 19:49 被阅读0次


最近后台项目管理系统居多,一直用局部指令节流有些麻烦,这里贴出全局文本框用户输入后0.8秒执行方法的节流指令 和 按钮节流的点击事件


一、输入框节流外部引入指令方式:

 1.1 : 新建debounce.js文件:

```

import Vue from 'vue'

// 自定义防抖

Vue.directive('debounce',{

  inserted: function (el, binding) {

    let timer

    el.addEventListener('keyup', () => {

      if (timer) {

        clearTimeout(timer)

      }

      timer = setTimeout(() => {

        binding.value()

      }, 800)

    })

  }

})

```

1.2、main.js中引入:

```

import "@/utils/debounce.js"

```

对,就这么简单

1.3、页面中使用:

```

   <el-input v-model="xxx.xxxxx"  v-debounce="自己的方法名">

```


二、贴出vue单个页面上 input 节流的局部指令:

```

    // 节流指令

  directives: {

    debounce: {

      inserted: function (el, binding) {

        let timer

        el.addEventListener('keyup', () => {

          if (timer) {

            clearTimeout(timer)

          }

          timer = setTimeout(() => {

            binding.value()

          }, 500)

        })

      },

    },

  }

```

使用方法:

```

<el-input v-model="xxx.xxxxx"  v-debounce="页面中执行的方法名">

```


三、button 按钮的节流方法

3.1、新建 preventReClick.js 文件:

```

import Vue from 'vue'

//按钮节流

const preventReClick = Vue.directive('preventReClick', {

  inserted: function (el, binding) {

    el.addEventListener('click', () => {

      if (!el.disabled) {

        el.disabled = true

        setTimeout(() => {

          el.disabled = false

        }, binding.value || 3000)

      }

    })

  }

});

export { preventReClick }

```

3.2、main.js中:

```

import { preventReClick }from '@/utils/preventReClick'

Vue.prototype.$preventReClick = preventReClick; // 节流函数

```

3.3、使用

```

   <el-button :@click="getCodeMsgBtn" v-preventReClick>按钮</el-button>

```

相关文章

  • vue节流全局指令超级简单

    最近后台项目管理系统居多,一直用局部指令节流有些麻烦,这里贴出全局文本框用户输入后0.8秒执行方法的节流指令 和 ...

  • Vue之自定义指令

    分类:全局指令、局部指令 1、自定义全局指令 使用全局方法Vue.directive(指令ID,定义对象) 注:使...

  • Vue基础(五)--自定义指令与过渡

    1.自定义指令 分类:全局指令、局部指令 1.1 自定义全局指令 使用全局方法 Vue.directive(指令I...

  • vue入门6---vue基本指令、自定义指令、插件

    一、vue常用指令概览 二、vue自定义指令 注册全局指令Vue.directive('my-directive'...

  • 自定义指令

    一、自定义全局指令Vue中所有指令都以(v-)开头。使用Vue.directive('name',{})定义全局指...

  • Vue指令钩子函数

    Vue指令上篇文章有讲过了,现在分析Vue指令钩子函数。 自定义指令 全局定义:Vue.directive( ' ...

  • 40.Vue自定义指令--局部

    Vue指令详解参考 当全局指令和局部指令同名时以局部指令为准 案例(局部指令聚焦输入框): index.vue

  • Vue.js自定义指令directive

    全局自定义指令 使用Vue.directive()定义全局指令 参数1:指令的名称,注意,定义的时候指令名称前不用...

  • Vue div节点滚动事件-加载更多

    使用Vue.directive注册全局指令 绑定事件 对于Vue自定义指令不明白的同学请移步: Vue自定义指令 ...

  • 项目常用代码

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

网友评论

    本文标题:vue节流全局指令超级简单

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