jh-vk-event-lister
Version:
金合Vue Hooks 事件监听hook
2 lines (1 loc) • 1.41 kB
JavaScript
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("vue"),require("@vueuse/core")):"function"==typeof define&&define.amd?define(["exports","vue","@vueuse/core"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self)["cjh-vk-eventlisteneron"]={},e.vue,e.core)}(this,(function(e,n,t){"use strict";Object.defineProperty(e,"useDebounceFn",{enumerable:!0,get:function(){return t.useDebounceFn}}),Object.defineProperty(e,"useThrottleFn",{enumerable:!0,get:function(){return t.useThrottleFn}}),e.useEventListener=function(e){var o=e.el,i=void 0===o?window:o,u=e.name,r=e.listener,f=e.options,s=e.autoRemove,c=void 0===s||s,d=e.isDebounce,v=void 0===d||d,a=e.wait,l=void 0===a?80:a,m=function(){},b=n.ref(!1);if(i){var p=n.ref(i),w=v?t.useDebounceFn(r,l):t.useThrottleFn(r,l),y=l?w:r,h=function(e){b.value=!0,e.removeEventListener(u,y,f)},F=n.watch(p,(function(e,t,o){e&&(!n.unref(b)&&e.addEventListener(u,y,f),o((function(){c&&h(e)})))}),{immediate:!0});m=function(){h(p.value),F()}}return{removeEvent:m}},e.useWindowResize=function(e,n,o){void 0===n&&(n=150);var i=function(){e()},u=t.useDebounceFn(i,n);i=u;var r=function(){o&&o.immediate&&i(),window.addEventListener("resize",i)},f=function(){window.removeEventListener("resize",i)};return t.tryOnMounted((function(){r()})),t.tryOnUnmounted((function(){f()})),[r,f]},Object.defineProperty(e,"__esModule",{value:!0})}));