vueuse-shared-skilld
Original:🇺🇸 English
Translated
ALWAYS use when writing code importing "@vueuse/shared". Consult for debugging, best practices, or modifying @vueuse/shared, vueuse/shared, vueuse shared, vueuse.
3installs
Added on
NPX Install
npx skill4agent add harlan-zw/vue-ecosystem-skills vueuse-shared-skilldTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →vueuse/vueuse @vueuse/shared
@vueuse/sharedVersion: 14.2.1 (Feb 2026)
Tags: next: 5.0.0 (Jun 2021), alpha: 14.0.0-alpha.3 (Sep 2025), beta: 14.0.0-beta.1 (Sep 2025), latest: 14.2.1 (Feb 2026)
References: Docs — API reference, guides • GitHub Issues — bugs, workarounds, edge cases • GitHub Discussions — Q&A, patterns, recipes • Releases — changelog, breaking changes, new APIs
API Changes
This section documents version-specific API changes — prioritize recent major/minor releases.
-
BREAKING: Requires Vue 3.5 — v14 now requires Vue 3.5+ for native performance optimizations source
-
BREAKING:alignment — v14 aligned with traditional throttle behavior (leading: true, trailing: false by default) source
useThrottleFn -
BREAKING: ESM-only — v13 dropped CJS build support, package is now ESM-only source
-
BREAKING:return — v14 now returns only the sharedComposable instance on the client side source
createSharedComposable -
NEW:— new function in v14 for creating refs with an explicit
refManualResetmethod sourcereset() -
NEW:controls — v14 added
watchAtMost,pause, andresumeto the return value sourcecount -
NEW:— v14 added optional
tryOnScopeDisposeparameter to suppress errors outside of scope sourcefailSilently -
NEW:type — v14.1.0 now exports the
useArrayReducetype sourceUseArrayReduceReturn -
NEW:sources — v14.1.0 allows different types in watch sources array source
computedWithControl -
DEPRECATED:— v14 deprecated in favor of Vue 3.5's native
computedEageroptimizations sourcecomputed -
DEPRECATED:— v14 deprecated in favor of Vue's built-in
watchPausableorwatchsourcepausableFilter -
DEPRECATED: Alias exports — v14 deprecated secondary names likein favor of primary
ignorableWatchsourcewatchIgnorable -
DEPRECATED:— v14 deprecated alias in favor of
eagerComputedsourcecomputedEager -
DEPRECATED:— v14 deprecated alias in favor of
controlledComputedsourcecomputedWithControl
Also changed: DEPRECATED · DEPRECATED · DEPRECATED · DEPRECATED · DEPRECATED · DEPRECATED · DEPRECATED · DEPRECATED · DEPRECATED · DEPRECATED · DEPRECATED
createReactiveFnautoResetRefdebouncedRefuseDebouncethrottledRefuseThrottlecontrolledRefdebouncedWatchignorableWatchpausableWatchthrottledWatchBest Practices
-
Prefer Vue 3.4+ built-inover
computed()— standard computed properties now only trigger dependencies if the return value actually changes, making eager evaluation unnecessary sourcecomputedEager() -
Usefor SSR-safe state sharing — it automatically falls back to non-shared instances during SSR to prevent cross-request state pollution, while maintaining a singleton on the client source
createSharedComposable() -
Share state within the same component usingand
provideLocal()— allows accessing provided values without going through the parent/child boundary, now with full Vapor mode support sourceinjectLocal() -
Replace manual watchers withfor one-time async conditions — provides a promise-based API for flow control that resolves once a ref meets a specific requirement, reducing callback nesting source
until()
ts
// Preferred for one-time triggers
await until(isReady).toBe(true)
doSomething()-
Implementfor easy state restoration — provides a built-in
refManualReset()method to return the ref to its initial value, ideal for clearing forms or reset-to-default filters source.reset() -
Useto transform plain utility functions into reactive ones — automatically accepts refs as arguments and returns a
reactify(), enabling rapid development of reactive logic sourceComputedRef -
Optimize hot paths withusing
refWithControl()andpeek()— allows reading or writing a ref's value without triggering the reactivity system or tracking dependencies, minimizing unnecessary updates sourcelay() -
Return dual object/array APIs via— makes your custom composables more flexible by allowing users to choose between positional (array) or named (object) destructuring source
makeDestructurable() -
Convert state during synchronization withcustom transforms — use the
syncRef()option withtransformandltrfunctions to map values between refs of different types sourcertl
ts
// Sync a number ref with a string ref
syncRef(count, stringCount, {
transform: {
ltr: left => String(left),
rtl: right => Number(right)
}
})- Choose for persistent application-wide singletons — unlike shared composables which dispose state when subscribers reach zero, global state remains alive for the entire app lifecycle source
createGlobalState()