提交 | 用户 | 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 }; |