日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

在vue中使用防抖函數(shù)組件操作

瀏覽:23日期:2022-12-28 09:13:58

初級

1、先寫好防抖函數(shù)

/** * @desc 防抖函數(shù) * @param {需要防抖的函數(shù)} func * @param {延遲時間} wait * @param {是否立即執(zhí)行} immediate */export function debounce(func, wait, immediate) { let timeout return function(...args) { let context = this if (timeout) clearTimeout(timeout) if (immediate) { let callNow = !timeout timeout = setTimeout(function() { timeout = null }, wait) if (callNow) func.apply(context, args) } else { timeout = setTimeout(function() { func.apply(context, args) }, wait) } }}

2、然后在要使用的組件里 import 進來

import { debounce } from ’xxx’export default { data: { return { vm: this } }, methods: { toDoSth: debounce((vm) => { // 這里將當前組件實例當參數(shù)傳入 // 就可以使用實例中定義的一些屬性、方法 // 補充一下,這里如果換成非箭頭函數(shù)的寫法,也可以直接訪問實例。 }, 500, true ) }}

3、在組件方法中使用

template:

<div @click='toDoSth(vm)'></div>

高級

雖然上面的寫法已經(jīng)能解決問題了,但是總覺得不夠美觀。

在網(wǎng)上搜索一番,看到有個哥們將防抖封裝成一個組件,果然和我想的一樣。不過這哥們直接將上下文當參數(shù)傳進來了,比我把整個實例傳進來高明,我在這個基礎上添加了 immediate 的功能,還有添加了默認不傳 event 參數(shù)的情況處理。

debounce.js 文件:

import Vue from ’vue’const debounce = (func, time, ctx, immediate) => { let timer const rtn = (...params) => { clearTimeout(timer) if (immediate) { let callNow = !timer timer = setTimeout(() => { timer = null }, time) if (callNow) func.apply(ctx, params) } else { timer = setTimeout(() => { func.apply(ctx, params) }, time) } } return rtn}Vue.component(’Debounce’, { abstract: true, props: [’time’, ’events’, ’immediate’], created() { this.eventKeys = this.events && this.events.split(’,’) }, render() { const vnode = this.$slots.default[0] // 如果默認沒有傳 events,則對所有綁定事件加上防抖 if (!this.eventKeys) { this.eventKeys = Object.keys(vnode.data.on) } this.eventKeys.forEach(key => { vnode.data.on[key] = debounce( vnode.data.on[key], this.time, vnode, this.immediate ) }) return vnode }})

使用方式:

1、引入 debounce.js 文件

import ’xxx/debounce.js’export default { methods: { toDoSth(e) { // 這里正常寫就可以了 } }}

2、在模版里使用

其中time為必選參數(shù)。 event 和 immediate 參數(shù)都是可選參數(shù)。

如果組件下有多個事件綁定,那么 event 可以自定義需要進行防抖處理的事件。

如果需要立即執(zhí)行的話,可以將 immediate 參數(shù)設置為 true。

<Debounce :time='500' event='click' :immediate='true'> <button @click='toDoSth($event, 1)'>click me</button></Debounce>

到此就完成了一次 Debounce 組件的封裝。

補充知識:vue防抖函數(shù),避免暴力點擊

1.vue項目/src/components/directive/clickAgain.js

import Vue from ’vue’const clickAgain = Vue.directive(’clickAgain’,{ // 指令的定義 bind(el, binding, vnode, oldVnode) { // 綁定this let self = vnode.context; el.onclick = function (e) { if (self._is_click) { return false; } /*執(zhí)行指令綁定的事件*/ self[binding.expression]() self._is_click=true; setTimeout(()=>{ self._is_click=false; },2000) }; }});export default clickAgain

2.在main.js 引入

import clickAgain from ’./components/directive/clickAgain.js’

/* 引入避免暴力雙擊點擊*/

Vue.use(clickAgain);

3.使用

<a-button key='submit' type='primary' :loading='false' v-clickAgain='handleOk'> 保存</a-button>

以上這篇在vue中使用防抖函數(shù)組件操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標簽: Vue
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲一区二区三区中文字幕在线观看| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 日韩在线观看| 久久精品人人| 国产日韩在线观看视频| 99视频精品| 黄色日韩在线| 久久精品一区二区不卡| 欧美一区久久久| 久久久男人天堂| 精品免费av在线| 日韩在线观看一区| 免费成人在线观看| 国产美女高潮在线| 国产精品普通话对白| 国产极品一区| 欧美日韩国产高清电影| 日韩精品欧美精品| 中文av在线全新| 欧美日韩国产一区精品一区| 亚洲中字黄色| 国产精品日韩精品在线播放| 亚洲香蕉网站| 久久精品国产www456c0m| 99久久夜色精品国产亚洲1000部| 国产精品88久久久久久| 亚洲一二三区视频| 精品视频黄色| 在线亚洲自拍| 亚洲日产国产精品| 日产精品一区| 久热精品在线| 日韩不卡一区二区| 日产欧产美韩系列久久99| 欧美在线不卡| 欧美美女一区| 国产精品nxnn| 久久久久网站| 一区二区三区四区日韩| 精品国产网站| 日韩在线卡一卡二| 欧美亚洲综合视频| 99久久亚洲精品| 国产麻豆一区| 日韩精品专区| 国产精品欧美三级在线观看| 国产韩日影视精品| 麻豆精品少妇| 亚洲综合小说| 国产成人精品福利| 欧美黑人巨大videos精品| 国产精品密蕾丝视频下载| jizzjizz中国精品麻豆| 亚洲精品精选| 国产精品7m凸凹视频分类| 久久精品国产精品亚洲毛片| 综合激情视频| 五月天久久777| 欧美日韩国产观看视频| 丝袜亚洲精品中文字幕一区| 国产一区二区三区不卡视频网站| 91精品在线免费视频| 老鸭窝毛片一区二区三区| 精品成av人一区二区三区| 日韩二区三区在线观看| 在线视频亚洲| 欧美亚洲国产激情| 丝袜诱惑一区二区| 精品国产中文字幕第一页| 国产精品伊人| 日本强好片久久久久久aaa| 亚洲日本欧美| 日韩激情一二三区| 日本午夜免费一区二区| 人人爽香蕉精品| 视频在线观看一区二区三区| 久色成人在线| 免费人成在线不卡| 国产亚洲毛片| 日日摸夜夜添夜夜添国产精品| 日韩中文字幕不卡| 午夜性色一区二区三区免费视频| 亚洲欧美日韩国产| 亚洲一级黄色| 国产亚洲激情| 亚洲精品日本| 欧美日韩1区| 久久午夜影院| 欧美一区二区性| 国产在线成人| 日韩精品午夜视频| 国产精久久久| jizzjizz中国精品麻豆| 蜜桃视频在线网站| 中文字幕av亚洲精品一部二部| 亚洲三级国产| 国产激情欧美| 日本а中文在线天堂| 欧美理论视频| 亚洲资源网站| 国产一区不卡| 香蕉精品视频在线观看| 久久天堂影院| 麻豆久久久久久| 亚洲影视一区| 日韩精品一级二级 | 亚洲免费婷婷| 亚洲先锋成人| 国户精品久久久久久久久久久不卡| 国产精品美女午夜爽爽| 午夜天堂精品久久久久| 午夜久久av| 日本va欧美va瓶| 日韩国产欧美三级| 日韩精品一页| 日韩国产成人精品| 日韩精品一区二区三区中文字幕| 日韩精品欧美| 在线看片日韩| 色婷婷精品视频| 免费一级欧美在线观看视频| 欧美激情福利| 伊人www22综合色| 日韩av在线播放网址| 综合在线一区| 欧美黄色网页| 久久精品网址| 亚洲最新av| 亚洲va在线| 国产精品99精品一区二区三区∴| 亚洲精品午夜av福利久久蜜桃| 国产欧美二区| 亚洲国产日韩欧美在线| 精品一区二区三区在线观看视频| 日韩国产成人精品| 五月亚洲婷婷 | 国产精品啊v在线| 男人天堂欧美日韩| 激情五月综合网| 亚洲va中文在线播放免费| 国产伦理一区| 国产亚洲精品美女久久久久久久久久| 亚洲影院天堂中文av色| 西西人体一区二区| 视频在线观看91| 日韩专区视频网站| 国产精品v一区二区三区| 国产一区二区三区网| 成人久久久久| 日韩一级网站| 日韩欧美美女在线观看| 久久爱www成人| 欧美精品一区二区久久| 亚洲深夜福利在线观看| 欧美在线首页| 日韩欧美网址| 日韩精品第一| 久久久一二三| 日韩高清不卡在线| 国产精品伦理久久久久久| 精精国产xxxx视频在线野外| 美女精品在线观看| 精品亚洲a∨一区二区三区18| 免费观看不卡av| 国产精品a级| 欧美专区18| 在线天堂资源www在线污| 亚洲人成在线影院| 成人在线黄色| 日韩有吗在线观看| 欧美不卡视频| 国内精品亚洲| 欧美在线精品一区| 蜜臀久久久99精品久久久久久| 97国产精品| 91福利精品在线观看| 99国产精品视频免费观看一公开 | 国产一级一区二区| 国产a亚洲精品| 欧美另类中文字幕| 日韩精品高清不卡| 欧美日一区二区| 久久av综合| 日韩精品一二区| 日韩a一区二区| 亚洲日产国产精品| 精品久久久中文字幕| 日韩一区欧美二区| 91av亚洲| 牛牛精品成人免费视频| 在线亚洲欧美| 欧洲一区二区三区精品| 午夜久久av | 色综合视频一区二区三区日韩| 欧美激情五月| 亚洲精品伦理| 日韩成人a**站| 美女国产精品久久久| 日韩毛片网站| 日韩av在线播放中文字幕|