1 changed files with 8 additions and 4 deletions
@ -1,16 +1,20 @@
|
||||
import type { Ref } from 'vue' |
||||
import { onBeforeUpdate, ref } from 'vue' |
||||
|
||||
export function useRefs(): [Ref<HTMLElement[]>, (index: number) => (el: HTMLElement) => void] { |
||||
const refs = ref([]) as Ref<HTMLElement[]> |
||||
function useRefs<T = HTMLElement>(): { refs: Ref<T[]>; setRefs: (index: number) => (el: T) => void } { |
||||
const refs = ref([]) as Ref<T[]> |
||||
|
||||
onBeforeUpdate(() => { |
||||
refs.value = [] |
||||
}) |
||||
|
||||
const setRefs = (index: number) => (el: HTMLElement) => { |
||||
const setRefs = (index: number) => (el: T) => { |
||||
refs.value[index] = el |
||||
} |
||||
|
||||
return [refs, setRefs] |
||||
return { |
||||
refs, |
||||
setRefs, |
||||
} |
||||
} |
||||
export { useRefs } |
||||
|
Reference in new issue