在 utils目錄下封裝 debounce.js :
let timeout = null function debounce(fn, wait) { if (timeout !== null) clearTimeout(timeout) timeout = setTimeout(fn, wait) } export default debounce
debounce.vue使用 debounce.js。(test)
<template> <div> <button @click="clickMe()">點我啊</button> </div> </template> <script> import debounce from './../../utils/debounce.js' export default { data () { return { } }, methods: { clickMe(){ debounce(() => { console.log('觸發') }, 1000) }, } } </script>
防抖原理:當持續觸發某事件時,一定時間間隔內沒有再觸發事件時,事件處理函數才會執行一次。
比如1000毫秒內沒有再觸發事件時,事件處理函數才會執行一次。