xdesign-vue-next
Version:
XDesign Component for vue-next
40 lines (34 loc) • 1.16 kB
JavaScript
/**
* xdesign v1.0.6
* (c) 2023 xdesign
* @license MIT
*/
;
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
var _common_js_utils_observe = require('../_common/js/utils/observe.js');
function useElementLazyRender(labelRef, lazyLoad) {
var ioObserver = vue.ref();
var showElement = vue.ref(true);
var handleLazyLoad = function handleLazyLoad() {
if (!lazyLoad.value) return;
showElement.value = false;
var io = _common_js_utils_observe["default"](labelRef.value, null, function () {
showElement.value = true;
}, 10);
ioObserver.value = io;
};
vue.onMounted(handleLazyLoad);
lazyLoad.value && vue.watch([lazyLoad], handleLazyLoad);
vue.onBeforeUnmount(function () {
var _ioObserver$value;
if (!lazyLoad.value) return;
(_ioObserver$value = ioObserver.value) === null || _ioObserver$value === void 0 ? void 0 : _ioObserver$value.unobserve(labelRef.value);
});
return {
showElement: showElement
};
}
exports["default"] = useElementLazyRender;
exports.useElementLazyRender = useElementLazyRender;
//# sourceMappingURL=useElementLazyRender.js.map