Loading source
Pulling the file list, source metadata, and syntax-aware rendering for this listing.
Source from repo
Apply VueUse composables in Vue 3/Nuxt projects to replace custom implementations with battle-tested utilities.
Files
Skill
Size
Entrypoint
Format
Open file
Syntax-highlighted preview of this file as included in the skill package.
references/useArrayUnique.md
1---2category: Array3---45# useArrayUnique67reactive unique array89## Usage1011### Use with array of multiple refs1213```ts14import { useArrayUnique } from '@vueuse/core'1516const item1 = ref(0)17const item2 = ref(1)18const item3 = ref(1)19const item4 = ref(2)20const item5 = ref(3)21const list = [item1, item2, item3, item4, item5]22const result = useArrayUnique(list)23// result.value: [0, 1, 2, 3]24item5.value = 125// result.value: [0, 1, 2]26```2728### Use with reactive array2930```ts31import { useArrayUnique } from '@vueuse/core'3233const list = reactive([1, 2, 2, 3])34const result = useArrayUnique(list)35// result.value: [1, 2, 3]3637list.push(1)38// result.value: [1, 2, 3]39```4041### Use with custom function4243```ts44import { useArrayUnique } from '@vueuse/core'4546const list = reactive([47{ id: 1, name: 'foo' },48{ id: 2, name: 'bar' },49{ id: 1, name: 'baz' },50])5152const result = useArrayUnique(list, (a, b) => a.id === b.id)53// result.value: [{ id: 1, name: 'foo' }, { id: 2, name: 'bar' }]5455list.push({ id: 1, name: 'qux' })56// result.value: [{ id: 1, name: 'foo' }, { id: 2, name: 'bar' }]57```5859## Type Declarations6061```ts62export type UseArrayUniqueReturn<T = any> = ComputedRef<T[]>63/**64* reactive unique array65* @see https://vueuse.org/useArrayUnique66* @param list - the array was called upon.67* @param compareFn68* @returns A computed ref that returns a unique array of items.69*70* @__NO_SIDE_EFFECTS__71*/72export declare function useArrayUnique<T>(73list: MaybeRefOrGetter<MaybeRefOrGetter<T>[]>,74compareFn?: (a: T, b: T, array: T[]) => boolean,75): UseArrayUniqueReturn<T>76```77