jh-vk-event-lister
Version:
金合Vue Hooks 事件监听hook
2 lines (1 loc) • 957 B
JavaScript
import{ref as e,watch as n,unref as o}from"vue";import{useDebounceFn as i,useThrottleFn as t,tryOnMounted as r,tryOnUnmounted as u}from"@vueuse/core";export{useDebounceFn,useThrottleFn}from"@vueuse/core";function v(r){var u=r.el,v=void 0===u?window:u,c=r.name,f=r.listener,d=r.options,m=r.autoRemove,a=void 0===m||m,s=r.isDebounce,w=void 0===s||s,l=r.wait,p=void 0===l?80:l,E=function(){},L=e(!1);if(v){var b=e(v),x=w?i(f,p):t(f,p),z=p?x:f,D=function(e){L.value=!0,e.removeEventListener(c,z,d)},F=n(b,(function(e,n,i){e&&(!o(L)&&e.addEventListener(c,z,d),i((function(){a&&D(e)})))}),{immediate:!0});E=function(){D(b.value),F()}}return{removeEvent:E}}function c(e,n,o){void 0===n&&(n=150);var t=function(){e()},v=i(t,n);t=v;var c=function(){o&&o.immediate&&t(),window.addEventListener("resize",t)},f=function(){window.removeEventListener("resize",t)};return r((function(){c()})),u((function(){f()})),[c,f]}export{v as useEventListener,c as useWindowResize};