huangxiaomin
2023-09-27 9f6d61d02c6bee572ca5d6053339a1f965f570b9
提交 | 用户 | age
c5d24e 1 import type { ComponentPublicInstance, Ref } from 'vue';
6a9bd6 2 import { onBeforeUpdate, shallowRef } from 'vue';
46e087 3
86d575 4 function useRefs<T = HTMLElement>(): {
S 5   refs: Ref<T[]>;
c5d24e 6   setRefs: (index: number) => (el: Element | ComponentPublicInstance | null) => void;
335f30 7 } {
86d575 8   const refs = shallowRef([]) as Ref<T[]>;
46e087 9
V 10   onBeforeUpdate(() => {
11     refs.value = [];
12   });
13
c5d24e 14   const setRefs = (index: number) => (el: Element | ComponentPublicInstance | null) => {
IW 15     refs.value[index] = el as T;
46e087 16   };
V 17
335f30 18   return {
V 19     refs,
20     setRefs,
21   };
46e087 22 }
335f30 23
V 24 export { useRefs };