From floating-ui-vue
Provides API changes, references, debugging tips, and best practices for @vueuse/integrations utilities like useAxios, useFocusTrap, useSortable, and useCookies. Use when importing @vueuse/integrations.
npx claudepluginhub skilld-dev/vue-ecosystem-skills --plugin floating-ui-vueThis skill uses the workspace's default tool permissions.
> Integration wrappers for utility libraries
references/discussions/_INDEX.mdreferences/discussions/discussion-4091.mdreferences/discussions/discussion-4105.mdreferences/discussions/discussion-4249.mdreferences/discussions/discussion-4263.mdreferences/discussions/discussion-4268.mdreferences/discussions/discussion-4293.mdreferences/discussions/discussion-4336.mdreferences/discussions/discussion-4367.mdreferences/discussions/discussion-4380.mdreferences/discussions/discussion-4547.mdreferences/discussions/discussion-4625.mdreferences/discussions/discussion-4646.mdreferences/discussions/discussion-4825.mdreferences/discussions/discussion-5028.mdreferences/discussions/discussion-5052.mdreferences/discussions/discussion-5055.mdreferences/discussions/discussion-5056.mdreferences/discussions/discussion-5074.mdreferences/discussions/discussion-5276.mdProvides API references, breaking changes, deprecations, best practices, and debugging info for @vueuse/core Vue Composition Utilities. Use when importing or modifying in Vue apps.
Guides selection and implementation of VueUse composables for state management, reactivity, and utilities in Vue.js and Nuxt projects.
Guides selection and implementation of VueUse composables for reactive state, async data, storage, and utilities in Vue.js/Nuxt projects.
Share bugs, ideas, or general feedback.
@vueuse/integrationsIntegration wrappers for utility libraries
Version: 14.2.1 Deps: @vueuse/core@14.2.1, @vueuse/shared@14.2.1 Tags: next: 5.0.0, alpha: 14.0.0-alpha.3, beta: 14.0.0-beta.1, latest: 14.2.1
References: GitHub Issues — bugs, workarounds, edge cases • GitHub Discussions — Q&A, patterns, recipes • Releases — changelog, breaking changes, new APIs
This section documents version-specific API changes — prioritize recent major/minor releases.
BREAKING: Requires Vue 3.5+ — v14.x now requires Vue 3.5.0 as a peer dependency for native features like useTemplateRef
BREAKING: ESM-only — dropped CommonJS (CJS) build in v13.0.0, now an ESM-only package source
BREAKING: focus-trap dependency — useFocusTrap updated peer dependency range to ^7 || ^8 in v14.2.0 source
BREAKING: universal-cookie dependency — useCookies now supports and prefers universal-cookie ^7 || ^8
BREAKING: change-case v5 — useChangeCase is now compatible with change-case v5, including internal naming changes
DEPRECATED: Alias exports — v14.0.0 deprecated alias exports in favor of original function names for consistency source
NEW: watchElement option — useSortable added watchElement in v14.2.0 to auto-reinitialize when target element changes source
NEW: updateContainerElements — useFocusTrap exposed updateContainerElements in v13.6.0 for dynamic container updates source
NEW: serializer option — useIDBKeyval added options.serializer in v13.6.0 for custom data serialization source
NEW: Component Ref support — useSortable can now accept a Vue component instance/ref as the target element since v13.1.0 source
NEW: Thenable useAxios — useAxios returns are now thenable, allowing await useAxios(...) in async contexts source
NEW: Flexible execute — useAxios execute() can now take url or config separately for manual triggers source
NEW: initialData option — useAxios added initialData to provide a default value before the request finishes source
NEW: Helper functions — moveArrayElement, insertNodeAt, and removeNode are now exported from useSortable source
Also changed: useAsyncValidator internal types · useJwt options refinement · useNProgress reactive state consistency · useSortable type misalignment fix source
// Preferred
import { useAxios } from '@vueuse/integrations/useAxios'
// Avoid
import { useAxios } from '@vueuse/integrations'
useAxios() directly for one-off requests as the return value is thenable, simplifying promise handling sourceconst { data, error } = await useAxios('/api/posts')
resetOnExecute: true in useAxios options to clear stale data automatically when a new request is triggered sourceconst { execute } = useAxios('/api/data', { method: 'GET' }, { resetOnExecute: true })
useCookies in Nuxt 3 environments to avoid name collisions with Nuxt's built-in useCookie composable sourceimport { useCookies } from '@vueuse/integrations/useCookies'
autoUpdateDependencies: true with useCookies to automatically track and update dependencies for any cookie names accessed via .get() sourceconst { get } = useCookies(['initial'], { autoUpdateDependencies: true })
watchElement: true option in useSortable to automatically reinitialize the instance when the target element changes (e.g., with v-if) sourceuseSortable(el, list, { watchElement: true })
nextTick() after calling moveArrayElement in useSortable to ensure the DOM update has fully finished sourceuseSortable(el, list, {
onUpdate: (e) => {
moveArrayElement(list, e.oldIndex, e.newIndex)
nextTick(() => { /* perform post-move logic */ })
}
})
nextTick() before calling activate() in useFocusTrap when dealing with conditionally rendered (v-if) elements to ensure they exist in the DOM sourceasync function openModal() {
show.value = true
await nextTick()
activate()
}
UseFocusTrap component over the manual composable for automatic activation on mount and cleanup on unmount source<UseFocusTrap v-if="show" :options="{ immediate: true }">
<div class="modal">...</div>
</UseFocusTrap>
.set() method returned by useIDBKeyval to ensure that the IndexedDB transaction is fully committed before proceeding sourceconst count = useIDBKeyval('my-count', 0)
await count.set(10)