UNPKG

@opentiny/vue-renderless

Version:

An enterprise-class UI component library, support both Vue.js 2 and Vue.js 3, as well as PC and mobile.

37 lines (36 loc) 1.03 kB
import "../chunk-G2ADBYYC.js"; import { addResizeListener, removeResizeListener } from "@opentiny/utils"; import { debounce } from "@opentiny/utils"; import { getHiddenTags, handelItemClick } from "./index"; const api = ["state", "handelItemClick"]; const renderless = (props, { onMounted, onBeforeUnmount, reactive, watch }, { vm, emit }) => { const delay = 100; const state = reactive({ showMore: false, hiddenTags: [] }); const api2 = { state, getHiddenTags: getHiddenTags({ props, vm, state }), handelItemClick: handelItemClick({ emit }) }; onMounted(() => { api2.getHiddenTags(); api2.debouncedGetHiddenTags = debounce(delay, api2.getHiddenTags); addResizeListener(vm.$refs.tagGroup, debounce(delay, api2.debouncedGetHiddenTags)); }); watch( () => props.data.length, () => { api2.getHiddenTags(); } ); onBeforeUnmount(() => { removeResizeListener(vm.$refs.tagGroup, api2.debouncedGetHiddenTags); }); return api2; }; export { api, renderless };