VueUse Functions

SkillDev tools

Guides your agent to use VueUse composables when building Vue.js or Nuxt features instead of writing custom code.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the VueUse Functions skill

About this capability

Apply VueUse composables where appropriate to build concise, maintainable Vue.js / Nuxt features.

What this skill tells your AI

The instructions your AI receives, as published by antfu/skills in skills/vueuse-functions/SKILL.md and read by ahel’s review.

This skill is a decision-and-implementation guide for VueUse composables in Vue.js / Nuxt projects. It maps requirements to the most suitable VueUse function, applies the correct usage pattern, and prefers composable-based solutions over bespoke code to keep implementations concise, maintainable, and performant.

When to Apply

  • Apply this skill whenever assisting user development work in Vue.js / Nuxt.
  • Always check first whether a VueUse function can implement the requirement.
  • Prefer VueUse composables over custom code to improve readability, maintainability, and performance.
  • Map requirements to the most appropriate VueUse function and follow the function’s invocation rule.
  • Please refer to the Invocation field in the below functions table. For example:
    • AUTO: Use automatically when applicable.
    • EXTERNAL: Use only if the user already installed the required external dependency; otherwise reconsider, and ask to install only if truly needed.
    • EXPLICIT_ONLY: Use only when explicitly requested by the user.

    NOTE User instructions in the prompt or AGENTS.md may override a function’s default Invocation rule.

Functions

All functions listed below are part of the VueUse library, each section categorizes functions based on their functionality.

IMPORTANT: Each function entry includes a short Description and a detailed Reference. When using any function, always consult the corresponding document in ./references for Usage details and Type Declarations.

State

FunctionDescriptionInvocation
createGlobalStateKeep states in the global scope to be reusable across Vue instancesAUTO
createInjectionStateCreate global state that can be injected into componentsAUTO
createSharedComposableMake a composable function usable with multiple Vue instancesAUTO
injectLocalExtended inject with ability to call provideLocal to provide the value in the same componentAUTO
provideLocalExtended provide with ability to call injectLocal to obtain the value in the same componentAUTO
useAsyncStateReactive async stateAUTO
useDebouncedRefHistoryShorthand for useRefHistory with debounced filterAUTO
useLastChangedRecords the timestamp of the last changeAUTO
useLocalStorageReactive LocalStorageAUTO
useManualRefHistoryManually track the change history of a ref when the user calls commit()AUTO
useRefHistoryTrack the change history of a refAUTO
useSessionStorageReactive SessionStorageAUTO
useStorageCreate a reactive ref that can be used to access & modify LocalStorage or SessionStorageAUTO
useStorageAsyncReactive Storage with async supportAUTO
useThrottledRefHistoryShorthand for useRefHistory with throttled filterAUTO

Elements

FunctionDescriptionInvocation
useActiveElementReactive document.activeElementAUTO
useDocumentVisibilityReactively track document.visibilityStateAUTO
useDraggableMake elements draggableAUTO
useDropZoneCreate a zone where files can be droppedAUTO
useElementBoundingReactive bounding box of an HTML elementAUTO
useElementSizeReactive size of an HTML elementAUTO
useElementVisibilityTracks the visibility of an element within the viewportAUTO
useIntersectionObserverDetects changes to a target element's visibilityAUTO
useMouseInElementReactive mouse position related to an elementAUTO
useMutationObserverWatch for changes being made to the DOM treeAUTO
useParentElementGet parent element of the given elementAUTO
useResizeObserverReports changes to the dimensions of an Element's content or the border-boxAUTO
useWindowFocusReactively track window focus with window.onfocus and window.onblur eventsAUTO
useWindowScrollReactive window scrollAUTO
useWindowSizeReactive window sizeAUTO

Browser

FunctionDescriptionInvocation
useBluetoothReactive Web Bluetooth APIAUTO
useBreakpointsReactive viewport breakpointsAUTO
useBroadcastChannelReactive BroadcastChannel APIAUTO
useBrowserLocationReactive browser locationAUTO
useClipboardReactive Clipboard APIAUTO
useClipboardItemsReactive Clipboard APIAUTO
useColorModeReactive color mode (dark / light / customs) with auto data persistenceAUTO
useCssSupportsSSR compatible and reactive CSS.supportsAUTO
useCssVarManipulate CSS variablesAUTO
useDarkReactive dark mode with auto data persistenceAUTO
useEventListenerUse EventListener with easeAUTO
useEyeDropperReactive EyeDropper APIAUTO
useFaviconReactive faviconAUTO
useFileDialogOpen file dialog with easeAUTO
useFileSystemAccessCreate and read and write local files with FileSystemAccessAPIAUTO
useFullscreenReactive Fullscreen APIAUTO
useGamepadProvides reactive bindings for the Gamepad APIAUTO
useImageReactive load an image in the browserAUTO
useMediaControlsReactive media controls for both audio and video elementsAUTO
useMediaQueryReactive Media QueryAUTO
useMemoryReactive Memory InfoAUTO
useObjectUrlReactive URL representing an objectAUTO
usePerformanceObserverObserve performance metricsAUTO
usePermissionReactive Permissions APIAUTO
usePreferredColorSchemeReactive prefers-color-scheme media queryAUTO
usePreferredContrastReactive prefers-contrast media queryAUTO
usePreferredDarkReactive dark theme preferenceAUTO
usePreferredLanguagesReactive Navigator LanguagesAUTO
usePreferredReducedMotionReactive prefers-reduced-motion media queryAUTO
usePreferredReducedTransparencyReactive prefers-reduced-transparency media queryAUTO
useScreenOrientationReactive Screen Orientation APIAUTO
useScreenSafeAreaReactive env(safe-area-inset-*)AUTO
useScriptTagCreates a script tagAUTO
useShareReactive Web Share APIAUTO
useSSRWidthUsed to set a global viewport width which will be used when rendering SSR components that rely on the viewport width like useMediaQuery or useBreakpointsAUTO
useStyleTagInject reactive style element in headAUTO
useTextareaAutosizeAutomatically update the height of a textarea depending on the contentAUTO
useTextDirectionReactive dir of the element's textAUTO
useTitleReactive document titleAUTO
useUrlSearchParamsReactive URLSearchParamsAUTO
useVibrateReactive Vibration APIAUTO
useWakeLockReactive Screen Wake Lock APIAUTO
useWebNotificationReactive NotificationAUTO
useWebWorkerSimple Web Workers registration and communicationAUTO
useWebWorkerFnRun expensive functions without blocking the UIAUTO

Sensors

FunctionDescriptionInvocation
onClickOutsideListen for clicks outside of an elementAUTO
onElementRemovalFires when the element or any element containing it is removed from the DOMAUTO
onKeyStrokeListen for keyboard keystrokesAUTO
onLongPressListen for a long press on an elementAUTO
onStartTypingFires when users start typing on non-editable elementsAUTO
useBatteryReactive Battery Status APIAUTO
useDeviceMotionReactive DeviceMotionEventAUTO
useDeviceOrientationReactive DeviceOrientationEventAUTO
useDevicePixelRatioReactively track window.devicePixelRatioAUTO
useDevicesListReactive enumerateDevices listing available input/output devicesAUTO
useDisplayMediaReactive mediaDevices.getDisplayMedia streamingAUTO
useElementByPointReactive element by pointAUTO
useElementHoverReactive element's hover stateAUTO
useFocusReactive utility to track or set the focus state of a DOM elementAUTO
useFocusWithinReactive utility to track if an element or one of its descendants has focusAUTO
useFpsReactive FPS (frames per second)AUTO
useGeolocationReactive Geolocation APIAUTO
useIdleTracks whether the user is being inactiveAUTO
useInfiniteScrollInfinite scrolling of the elementAUTO
useKeyModifierReactive Modifier StateAUTO
useMagicKeysReactive keys pressed stateAUTO
useMouseReactive mouse positionAUTO
useMousePressedReactive mouse pressing stateAUTO
useNavigatorLanguageReactive navigator.languageAUTO
useNetworkReactive Network statusAUTO
useOnlineReactive online stateAUTO
usePageLeaveReactive state to show whether the mouse leaves the pageAUTO
useParallaxCreate parallax effect easilyAUTO
usePointerReactive pointer stateAUTO
usePointerLockReactive pointer lockAUTO
usePointerSwipeReactive swipe detection based on PointerEventsAUTO
useScrollReactive scroll position and stateAUTO
useScrollLockLock scrolling of the elementAUTO
useSpeechRecognitionReactive SpeechRecognitionAUTO
useSpeechSynthesisReactive SpeechSynthesisAUTO
useSwipeReactive swipe detection based on TouchEventsAUTO
useTextSelectionReactively track user text selection based on Window.getSelectionAUTO
useUserMediaReactive mediaDevices.getUserMedia streamingAUTO

Network

FunctionDescriptionInvocation
useEventSourceAn EventSource or Server-Sent-Events instance opens a persistent connection to an HTTP serverAUTO
useFetchReactive Fetch API provides the ability to abort requestsAUTO
useWebSocketReactive WebSocket clientAUTO

Animation

FunctionDescriptionInvocation
useAnimateReactive Web Animations APIAUTO
useIntervalReactive counter that increases on every intervalAUTO
useIntervalFnWrapper for setInterval with controlsAUTO
useNowReactive current Date instanceAUTO
useRafFnCall function on every requestAnimationFrameAUTO
useTimeoutReactive value that becomes true after a given timeAUTO
useTimeoutFnWrapper for setTimeout with controlsAUTO
useTimestampReactive current timestampAUTO
useTransitionTransition between valuesAUTO

Component

FunctionDescriptionInvocation
computedInjectCombine computed and injectAUTO
createReusableTemplateDefine and reuse template inside the component scopeAUTO
createTemplatePromiseTemplate as PromiseAUTO
templateRefShorthand for binding ref to template elementAUTO
tryOnBeforeMountSafe onBeforeMountAUTO
tryOnBeforeUnmountSafe onBeforeUnmountAUTO
tryOnMountedSafe onMountedAUTO
tryOnScopeDisposeSafe onScopeDisposeAUTO
tryOnUnmountedSafe onUnmountedAUTO
unrefElementRetrieves the underlying DOM element from a Vue ref or component instanceAUTO
useCurrentElementGet the DOM element of current component as a refAUTO
useMountedMounted state in refAUTO
useTemplateRefsListShorthand for binding refs to template elements and components inside v-forAUTO
useVirtualListCreate virtual lists with easeAUTO
useVModelShorthand for v-model bindingAUTO
useVModelsShorthand for props v-model bindingAUTO

Watch

FunctionDescriptionInvocation
untilPromised one-time watch for changesAUTO
watchArrayWatch for an array with additions and removalsAUTO
watchAtMostwatch with the number of times triggeredAUTO
watchDebouncedDebounced watchAUTO
watchDeepShorthand for watching value with {deep: true}AUTO
watchIgnorableIgnorable watchAUTO
watchImmediateShorthand for watching value with {immediate: true}AUTO
watchOnceShorthand for watching value with { once: true }AUTO
watchPausablePausable watchAUTO
watchThrottledThrottled watchAUTO
watchTriggerableWatch that can be triggered manuallyAUTO
watchWithFilterwatch with additional EventFilter controlAUTO
wheneverShorthand for watching value to be truthyAUTO

Reactivity

Shortened here. Read the whole file on GitHub.

Signals

GitHub stars
6k
Forks
332
Last commit
Jun 2026
Advanced
Catalog kind
skill
Gateway key
vueuse-functions
Source
github.com/antfu/skills