directive
import throttle from './throttle'
Vue.directive('throttle', throttle)
if (window.Vue) {
window['hasRole'] = hasRole
window['hasPermi'] = hasPermi
Vue.use(install); // eslint-disable-line
}
export default install
throttle/index.js
/**
* 防止连点
*/
export default {
inserted (el, binding) {
el.addEventListener('click', () => {
el.style.pointerEvents = 'none';
if (!el.disabled) {
setTimeout(() => {
el.style.pointerEvents = 'auto'
}, binding.value || 300)
}
})
}
}
<span v-throttle></span>