首页/前端开发/vueuse-functions
V

vueuse-functions

by @antfuv1.0.0
0.0(0)

vueuse functions from antfu/skills

VueUseVue.js Composition APIUtility FunctionsFrontend DevelopmentGitHub
安装方式
npx skills add antfu/skills --skill vueuse-functions
compare_arrows

Before / After 效果对比

0

description 文档


name: vueuse-functions description: Apply VueUse composables where appropriate to build concise, maintainable Vue.js / Nuxt features. license: MIT metadata: author: SerKo https://github.com/serkodev version: "1.0" compatibility: Requires Vue 3 (or above) or Nuxt 3 (or above) project

VueUse Functions

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

| Function | Description | Invocation | |----------|-------------|------------| | createGlobalState | Keep states in the global scope to be reusable across Vue instances | AUTO | | createInjectionState | Create global state that can be injected into components | AUTO | | createSharedComposable | Make a composable function usable with multiple Vue instances | AUTO | | injectLocal | Extended inject with ability to call provideLocal to provide the value in the same component | AUTO | | provideLocal | Extended provide with ability to call injectLocal to obtain the value in the same component | AUTO | | useAsyncState | Reactive async state | AUTO | | useDebouncedRefHistory | Shorthand for useRefHistory with debounced filter | AUTO | | useLastChanged | Records the timestamp of the last change | AUTO | | useLocalStorage | Reactive LocalStorage | AUTO | | useManualRefHistory | Manually track the change history of a ref when the using calls commit() | AUTO | | useRefHistory | Track the change history of a ref | AUTO | | useSessionStorage | Reactive SessionStorage | AUTO | | useStorage | Create a reactive ref that can be used to access & modify LocalStorage or SessionStorage | AUTO | | useStorageAsync | Reactive Storage in with async support | AUTO | | useThrottledRefHistory | Shorthand for useRefHistory with throttled filter | AUTO |

Elements

| Function | Description | Invocation | |----------|-------------|------------| | useActiveElement | Reactive document.activeElement | AUTO | | useDocumentVisibility | Reactively track document.visibilityState | AUTO | | useDraggable | Make elements draggable | AUTO | | useDropZone | Create a zone where files can be dropped | AUTO | | useElementBounding | Reactive bounding box of an HTML element | AUTO | | useElementSize | Reactive size of an HTML element | AUTO | | useElementVisibility | Tracks the visibility of an element within the viewport | AUTO | | useIntersectionObserver | Detects that a target element's visibility | AUTO | | useMouseInElement | Reactive mouse position related to an element | AUTO | | useMutationObserver | Watch for changes being made to the DOM tree | AUTO | | useParentElement | Get parent element of the given element | AUTO | | useResizeObserver | Reports changes to the dimensions of an Element's content or the border-box | AUTO | | useWindowFocus | Reactively track window focus with window.onfocus and window.onblur events | AUTO | | useWindowScroll | Reactive window scroll | AUTO | | useWindowSize | Reactive window size | AUTO |

Browser

| Function | Description | Invocation | |----------|-------------|------------| | useBluetooth | Reactive Web Bluetooth API | AUTO | | useBreakpoints | Reactive viewport breakpoints | AUTO | | useBroadcastChannel | Reactive BroadcastChannel API | AUTO | | useBrowserLocation | Reactive browser location | AUTO | | useClipboard | Reactive Clipboard API | AUTO | | useClipboardItems | Reactive Clipboard API | AUTO | | useColorMode | Reactive color mode (dark / light / customs) with auto data persistence | AUTO | | useCssSupports | SSR compatible and reactive CSS.supports | AUTO | | useCssVar | Manipulate CSS variables | AUTO | | useDark | Reactive dark mode with auto data persistence | AUTO | | useEventListener | Use EventListener with ease | AUTO | | useEyeDropper | Reactive EyeDropper API | AUTO | | useFavicon | Reactive favicon | AUTO | | useFileDialog | Open file dialog with ease | AUTO | | useFileSystemAccess | Create and read and write local files with FileSystemAccessAPI | AUTO | | useFullscreen | Reactive Fullscreen API | AUTO | | useGamepad | Provides reactive bindings for the Gamepad API | AUTO | | useImage | Reactive load an image in the browser | AUTO | | useMediaControls | Reactive media controls for both audio and video elements | AUTO | | useMediaQuery | Reactive Media Query | AUTO | | useMemory | Reactive Memory Info | AUTO | | useObjectUrl | Reactive URL representing an object | AUTO | | usePerformanceObserver | Observe performance metrics | AUTO | | usePermission | Reactive Permissions API | AUTO | | usePreferredColorScheme | Reactive prefers-color-scheme media query | AUTO | | usePreferredContrast | Reactive prefers-contrast media query | AUTO | | usePreferredDark | Reactive dark theme preference | AUTO | | usePreferredLanguages | Reactive Navigator Languages | AUTO | | usePreferredReducedMotion | Reactive prefers-reduced-motion media query | AUTO | | usePreferredReducedTransparency | Reactive prefers-reduced-transparency media query | AUTO | | useScreenOrientation | Reactive Screen Orientation API | AUTO | | useScreenSafeArea | Reactive env(safe-area-inset-*) | AUTO | | useScriptTag | Creates a script tag | AUTO | | useShare | Reactive Web Share API | AUTO | | useSSRWidth | Used to set a global viewport width which will be used when rendering SSR components that rely on the viewport width like useMediaQuery or useBreakpoints | AUTO | | useStyleTag | Inject reactive style element in head | AUTO | | useTextareaAutosize | Automatically update the height of a textarea depending on the content | AUTO | | useTextDirection | Reactive dir of the element's text | AUTO | | useTitle | Reactive document title | AUTO | | useUrlSearchParams | Reactive URLSearchParams | AUTO | | useVibrate | Reactive Vibration API | AUTO | | useWakeLock | Reactive Screen Wake Lock API | AUTO | | useWebNotification | Reactive Notification | AUTO | | useWebWorker | Simple Web Workers registration and communication | AUTO | | useWebWorkerFn | Run expensive functions without blocking the UI | AUTO |

Sensors

| Function | Description | Invocation | |----------|-------------|------------| | onClickOutside | Listen for clicks outside of an element | AUTO | | onElementRemoval | Fires when the element or any element containing it is removed from the DOM | AUTO | | onKeyStroke | Listen for keyboard keystrokes | AUTO | | onLongPress | Listen for a long press on an element | AUTO | | onStartTyping | Fires when users start typing on non-editable elements | AUTO | | useBattery | Reactive Battery Status API | AUTO | | useDeviceMotion | Reactive DeviceMotionEvent | AUTO | | useDeviceOrientation | Reactive DeviceOrientationEvent | AUTO | | useDevicePixelRatio | Reactively track window.devicePixelRatio | AUTO | | useDevicesList | Reactive enumerateDevices listing available input/output devices | AUTO | | useDisplayMedia | Reactive mediaDevices.getDisplayMedia streaming | AUTO | | useElementByPoint | Reactive element by point | AUTO | | useElementHover | Reactive element's hover state | AUTO | | useFocus | Reactive utility to track or set the focus state of a DOM element | AUTO | | useFocusWithin | Reactive utility to track if an element or one of its decendants has focus | AUTO | | useFps | Reactive FPS (frames per second) | AUTO | | useGeolocation | Reactive Geolocation API | AUTO | | useIdle | Tracks whether the user is being inactive | AUTO | | useInfiniteScroll | Infinite scrolling of the element | AUTO | | useKeyModifier | Reactive Modifier State | AUTO | | useMagicKeys | Reactive keys pressed state | AUTO | | useMouse | Reactive mouse position | AUTO | | useMousePressed | Reactive mouse pressing state | AUTO | | useNavigatorLanguage | Reactive navigator.language | AUTO | | useNetwork | Reactive Network status | AUTO | | useOnline | Reactive online state | AUTO | | usePageLeave | Reactive state to show whether the mouse leaves the page | AUTO | | useParallax | Create parallax effect easily | AUTO | | usePointer | Reactive pointer state | AUTO | | usePointerLock | Reactive pointer lock | AUTO | | usePointerSwipe | Reactive swipe detection based on PointerEvents | AUTO | | useScroll | Reactive scroll position and state | AUTO | | useScrollLock | Lock scrolling of the element | AUTO | | useSpeechRecognition | Reactive SpeechRecognition | AUTO | | useSpeechSynthesis | Reactive SpeechSynthesis | AUTO | | useSwipe | Reactive swipe detection based on TouchEvents | AUTO | | useTextSelection | Reactively track user text selection based on Window.getSelection | AUTO | | useUserMedia | Reactive mediaDevices.getUserMedia streaming | AUTO |

Network

| Function | Description | Invocation | |----------|-------------|------------| | useEventSource | An EventSource or Server-Sent-Events instance opens a persistent connection to an HTTP server | AUTO | | useFetch | Reactive Fetch API provides the ability to abort requests | AUTO | | useWebSocket | Reactive WebSocket client | AUTO |

Animation

| Function | Description | Invocation | |----------|-------------|------------| | useAnimate | Reactive Web Animations API | AUTO | | useInterval | Reactive counter that increases on every interval | AUTO | | useIntervalFn | Wrapper for setInterval with controls | AUTO | | useNow | Reactive current Date instance | AUTO | | useRafFn | Call function on every requestAnimationFrame | AUTO | | useTimeout | Reactive value that becomes true after a given time | AUTO | | useTimeoutFn | Wrapper for setTimeout with controls | AUTO | | useTimestamp | Reactive current timestamp | AUTO | | useTransition | Transition between values | AUTO |

Component

| Function | Description | Invocation | |----------|-------------|------------| | computedInject | Combine computed and inject | AUTO | | createReusableTemplate | Define and reuse template inside the component scope | AUTO | | createTemplatePromise | Template as Promise | AUTO | | templateRef | Shorthand for binding ref to template element | AUTO | | tryOnBeforeMount | Safe onBeforeMount | AUTO | | tryOnBeforeUnmount | Safe onBeforeUnmount | AUTO | | tryOnMounted | Safe onMounted | AUTO | | tryOnScopeDispose | Safe onScopeDispose | AUTO | | tryOnUnmounted | Safe onUnmounted | AUTO | | unrefElement | Retrieves the underlying DOM element from a Vue ref or component instance | AUTO | | useCurrentElement | Get the DOM element of current component as a ref | AUTO | | useMounted | Mounted state in ref | AUTO | | useTemplateRefsList | Shorthand for binding refs to template elements and components inside v-for | AUTO | | useVirtualList | Create virtual lists with ease | AUTO | | useVModel | Shorthand for v-model binding | AUTO | | useVModels | Shorthand for props v-model binding | AUTO |

Watch

| Function | Description | Invocation | |----------|-------------|------------| | until | Promised one-time watch for changes | AUTO | | watchArray | Watch for an array with additions and removals | AUTO | | watchAtMost | watch with the number of times triggered | AUTO | | watchDebounced | Debounced watch | AUTO | | watchDeep | Shorthand for watching value with {deep: true} | AUTO | | watchIgnorable | Ignorable watch | AUTO | | watchImmediate | Shorthand for watching value with {immediate: true} | AUTO | | watchOnce | Shorthand for watching value with { once: true } | AUTO | | watchPausable | Pausable watch | AUTO | | watchThrottled | Throttled watch | AUTO | | watchTriggerable | Watch that can be triggered manually | AUTO | | watchWithFilter | watch with additional EventFilter control | AUTO | | whenever | Shorthand for watching value to be truthy | AUTO |

Reactivity

| Function | Description | Invocation | |----------|-------------|------------| | computedAsync | Computed for async functions | AUTO | | computedEager | Eager computed without lazy evaluation | AUTO | | computedWithControl | Explicitly define the dependencies of computed | AUTO | | createRef | Returns a deepRef or shallowRef depending on the deep param | AUTO | | extendRef | Add extra attributes to Ref | AUTO | | reactify | Converts plain functions into reactive functions | AUTO | | reactifyObject | Apply reactify to an object | AUTO | | reactiveComputed | Computed reactive object | AUTO | | reactiveOmit | Reactively omit fields from a reactive object | AUTO | | reactivePick | Reactively pick fields from a reactive object | AUTO | | refAutoReset | A ref which will be reset to the default value after some time | AUTO | | refDebounced | Debounce execution of a ref value | AUTO | | refDefault | Apply default value to a ref | AUTO | | refManualReset | Create a ref with manual reset functionality | AUTO | | refThrottled | Throttle changing of a ref value | AUTO | | refWithControl | Fine-grained controls over ref and its reactivity | AUTO | | syncRef | Two-way refs synchronization | AUTO | | syncRefs | Keep target refs in sync with a source ref | AUTO | | toReactive | Converts ref to reactive | AUTO | | toRef | Normalize value/ref/getter to ref or computed | EXPLICIT_ONLY | | toRefs | Extended toRefs that also accepts refs of an object | AUTO |

Array

| Function | Description | Invocation | |----------|-------------|------------| | useArrayDifference | Reactive get array difference of two arrays | AUTO | | useArrayEvery | Reactive Array.every | AUTO | | useArrayFilter | Reactive Array.filter | AUTO | | useArrayFind | Reactive Array.find | AUTO | | useArrayFindIndex | Reactive Array.findIndex | AUTO | | useArrayFindLast | Reactive Array.findLast | AUTO | | useArrayIncludes | Reactive Array.includes | AUTO | | useArrayJoin | Reactive Array.join | AUTO | | useArrayMap | Reactive Array.map | AUTO | | useArrayReduce | Reactive Array.reduce | AUTO | | useArraySome | Reactive Array.some | AUTO | | useArrayUnique | Reactive unique array | AUTO | | useSorted | Reactive sort array | AUTO |

Time

| Function | Description | Invocation | |----------|-------------|------------| | useCountdown | Reactive countdown timer in seconds | AUTO | | useDateFormat | Get the formatted date according to the string of tokens passed in | AUTO | | useTimeAgo | Reactive time ago | AUTO | | useTimeAgoIntl | Reactive time ago with i18n supported | AUTO |

Utilities

| Function | Description | Invocation | |----------|-------------|------------| | createEventHook | Utility for creating event hooks | AUTO | | createUnrefFn | Make a plain function accepting ref and raw values as arguments | AUTO | | get | Shorthand for accessing ref.value | EXPLICIT_ONLY | | isDefined | Non-nullish checking type guard for Ref | AUTO | | makeDestructurable | Make isomorphic destructurable for object and array at the same time | AUTO | | set | Shorthand for ref.value = x | EXPLICIT_ONLY | | useAsyncQueue | Executes each asynchronous task sequentially and passes the current task result to the next task | AUTO | | useBase64 | Reactive base64 transforming | AUTO | | useCached | Cache a ref with a custom comparator | AUTO | | useCloned | Reactive clone of a ref | AUTO | | useConfirmDialog | Creates event hooks to support modals and confirmation dialog chains | AUTO | | useCounter | Basic counter with utility functions | AUTO | | useCycleList | Cycle through a list of items | AUTO | | useDebounceFn | Debounce execution of a function | AUTO | | useEventBus | A basic event bus | AUTO | | useMemoize | Cache results of functions depending on arguments and keep it reactive | AUTO | | useOffsetPagination | Reactive offset pagination | AUTO | | usePrevious | Holds the previous value of a ref | AUTO | | useStepper | Provides helpers for building a multi-step wizard interface | AUTO | | useSupported | SSR compatibility isSupported | AUTO | | useThrottleFn | Throttle execution of a function | AUTO | | useTimeoutPoll | Use timeout to poll something | AUTO | | useToggle | A boolean switcher with utility functions | AUTO | | useToNumber | Reactively convert a string ref to number | AUTO | | useToString | Reactively convert a ref to string | AUTO |

@Electron

| Function | Description | Invocation | |----------|-------------|------------| | useIpcRenderer | Provides ipcRenderer and all of its APIs with Vue reactivity | EXTERNAL | | useIpcRendererInvoke | Reactive ipcRenderer.invoke API result | EXTERNAL | | useIpcRendererOn | Use ipcRenderer.on with ease and ipcRenderer.removeListener automatically on unmounted | EXTERNAL | | useZoomFactor | Reactive WebFrame zoom factor | EXTERNAL | | useZoomLevel | Reactive WebFrame zoom level | EXTERNAL |

@Firebase

| Function | Description | Invocation | |----------|-------------|------------| | useAuth | Reactive Firebase Auth binding | EXTERNAL | | useFirestore | Reactive Firestore binding | EXTERNAL | | useRTDB | Reactive Firebase Realtime Database binding | EXTERNAL |

@Head

| Function | Description | Invocation | |----------|-------------|------------| | createHead | Create the head manager instance. | EXTERNAL | | useHead | Update head meta tags reactively. | EXTERNAL |

@Integrations

| Function | Description | Invocation | |----------|-------------|------------| | useAsyncValidator | Wrapper for async-validator | EXTERNAL | | useAxios | Wrapper for axios | EXTERNAL | | useChangeCase | Reactive wrapper for change-case | EXTERNAL | | useCookies | Wrapper for universal-cookie | EXTERNAL | | useDrauu | Reactive instance for drauu | EXTERNAL | | useFocusTrap | Reactive wrapper for focus-trap | EXTERNAL | | useFuse | Easily implement fuzzy search using a composable with Fuse.js | EXTERNAL | | useIDBKeyval | Wrapper for idb-keyval | EXTERNAL | | useJwt | Wrapper for jwt-decode | EXTERNAL | | useNProgress | Reactive wrapper for nprogress | EXTERNAL | | useQRCode | Wrapper for qrcode | EXTERNAL | | useSortable | Wrapper for sortable | EXTERNAL |

@Math

| Function | Description | Invocation | |----------|-------------|------------| | createGenericProjection | Generic version of createProjection | EXTERNAL | | createProjection | Reactive numeric projection from one domain to another | EXTERNAL | | logicAnd | AND condition for refs | EXTERNAL | | logicNot | NOT condition for ref | EXTERNAL | | logicOr | OR conditions for refs | EXTERNAL | | useAbs | Reactive Math.abs | EXTERNAL | | useAverage | Get the average of an array reactively | EXTERNAL | | useCeil | Reactive Math.ceil | EXTERNAL | | useClamp | Reactively clamp a value between two other values | EXTERNAL | | useFloor | Reactive Math.floor | EXTERNAL | | useMath | Reactive Math methods | EXTERNAL | | useMax | Reactive Math.max | EXTERNAL | | useMin | Reactive Math.min | EXTERNAL | | usePrecision | Reactively set the precision of a number | EXTERNAL | | useProjection | Reactive numeric projection from one domain to another | EXTERNAL | | useRound | Reactive Math.round | EXTERNAL | | useSum | Get the sum of an array reactively | EXTERNAL | | useTrunc | Reactive Math.trunc | EXTERNAL |

@Motion

| Function | Description | Invocation | |----------|-------------|------------| | useElementStyle | Sync a reactive object to a target element CSS styling | EXTERNAL | | useElementTransform | Sync a reactive object to a target element CSS transform. | EXTERNAL | | useMotion | Putting your components in motion. | EXTERNAL | | useMotionProperties | Access Motion Properties for a target element. | EXTERNAL | | useMotionVariants | Handle the Variants state and selection. | EXTERNAL | | useSpring | Spring animations. | EXTERNAL |

@Router

| Function | Description | Invocation | |----------|-------------|------------| | useRouteHash | Shorthand for a reactive route.hash | EXTERNAL | | useRouteParams | Shorthand for a reactive route.params | EXTERNAL | | useRouteQuery | Shorthand for a reactive route.query | EXTERNAL |

@RxJS

| Function | Description | Invocation | |----------|-------------|------------| | from | Wrappers around RxJS's from() and fromEvent() to allow them to accept refs | EXTERNAL | | toObserver | Sugar function to convert a ref into an RxJS Observer | EXTERNAL | | useExtractedObservable | Use an RxJS Observable as extracted from one or more composables | EXTERNAL | | useObservable | Use an RxJS Observable | EXTERNAL | | useSubject | Bind an RxJS Subject to a ref and propagate value changes both ways | EXTERNAL | | useSubscription | Use an RxJS Subscription without worrying about unsubscribing from it or creating memory leaks | EXTERNAL | | watchExtractedObservable | Watch the values of an RxJS Observable as extracted from one or more composables | EXTERNAL |

@SchemaOrg

| Function | Description | Invocation | |----------|-------------|------------| | createSchemaOrg | Create the schema.org manager instance. | EXTERNAL | | useSchemaOrg | Update schema.org reactively. | EXTERNAL |

@Sound

| Function | Description | Invocation | |----------|-------------|------------| | useSound | Play sound effects reactively. | EXTERNAL |

forum用户评价 (0)

发表评价

效果
易用性
文档
兼容性

暂无评价,来写第一条吧

统计数据

安装量6.5K
评分0.0 / 5.0
版本1.0.0
更新日期2026年3月16日
对比案例0 组

用户评分

0.0(0)
5
0%
4
0%
3
0%
2
0%
1
0%

为此 Skill 评分

0.0

兼容平台

🔧Claude Code

时间线

创建2026年3月16日
最后更新2026年3月16日