[!NOTE] This PR body was truncated due to platform limits.
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| @vueuse/core (source) | ^8.6.0 → ^15.0.0 |
Release Notes
vueuse/vueuse (@​vueuse/core)
v15.0.0
🚨 Breaking Changes
- Drop templateRef - by @43081j and @ilyaliao in #4883 <samp>(5cc18)</samp>
- Drop support for Node.js 20 - by @antfubot in #5553 <samp>(1ad39)</samp>
- core: Remove deprecated timer options in favor of
scheduler- by @OrbisK in #5564 <samp>(c02ab)</samp> - useEventSource: Handle SSE 'message' type and trigger both onmessage and addEventListener - by @ixyzorg, @OrbisK and @antfu in #5331 <samp>(77b57)</samp>
- useIDBKeyval: Sync changes across tabs - by @Slessi in #5338 <samp>(ee4ec)</samp>
- useThrottleFn: Change default
trailingoption from false to true - by @kyumoon and @OrbisK in #5249 <samp>(e9fe3)</samp>
🚀 Features
- core: Add useWebMCP - by @antfubot and @antfu in #5580 <samp>(172c5)</samp>
- useLiveAnnouncer: New function - by @IceMooncake and @antfubot in #5315 <samp>(4ed28)</samp>
- useTemporalNow: Add useTemporalNow - by @JonathanSchndr and @antfubot in #4793 <samp>(e1066)</samp>
🐞 Bug Fixes
- Correct tree-shaking annotations for overloaded and arrow functions - by @serkodev in #5613 <samp>(e32df)</samp>
- integrations: Align drauu peer range with the version actually used - by @haoku123, haoku123 and @antfu in #5595 <samp>(a5696)</samp>
- onLongPress: Clear pending long press on pointercancel - by @ShreeBohara and Claude Opus 5 in #5555 <samp>(d6dda)</samp>
- useBluetooth: Dedupe disconnect listener and reconnect on mount - by @haoku123, unkizhang, @cursoragent and @OrbisK in #5603 <samp>(819a8)</samp>
- useCloned: Make custom clone function type-safe - by @lazerg in #5559 <samp>(c5a08)</samp>
- useFetch: Ignore stale success response after a newer request starts - by @lazerg in #5574 <samp>(a4368)</samp>
- usePointer: Reset isInside on pointercancel - by @haoku123 and unkizhang in #5587 <samp>(8b7f4)</samp>
- useResizeObserver: Guard observe() with instanceof Element to prevent crash on Comment nodes - by @mryshakow and Michael Ryshakow in #5593 <samp>(96604)</samp>
- useWebSocket: Ignore messages from a superseded socket - by @lazerg in #5573 <samp>(2d33c)</samp>
🏎 Performance
- DisabledFunctions to use Set - by @VividLemon in #5569 <samp>(49f76)</samp>
View changes on GitHub
v14.4.0
🚀 Features
- Update skills - by @OrbisK in #5491 <samp>(f4758)</samp>
- nuxt: Disable
useColorModeauto import if@nuxtjs/color-modeis detected - by @OrbisK in #5476 <samp>(60687)</samp> - nuxt: Generate nuxt module builder output layout - by @userquin and @43081j in #5503 <samp>(40a1f)</samp>
- onStartTyping: Add more configurable options for
onStartTyping- by @LightQuanta and @9romise in #5395 <samp>(1f2b7)</samp> - useDebounceFn: Add flush and isPending to filter system - by @pcoterecollective, @OrbisK and @antfu in #5259 <samp>(4aa18)</samp>
- useElementOverflow: New function - by @inside5545, 苏俊言, @antfu, @ilyaliao, @OrbisK, @43081j and @9romise in #4094 <samp>(d49f5)</samp>
- useSpeechRecognition: Expose confidence of latest result - by @SAY-5 in #5398 <samp>(17dc9)</samp>
- useVirtualList: Add options
behavior,blockandinlineto exposed scrollTo method - by @laurens94, @OrbisK, @43081j and @ilyaliao in #4905 <samp>(01875)</samp>
🐞 Bug Fixes
- Drop unnecessary
PUREannotation to avoid Rollup warning - by @serkodev and @9romise in #5388 <samp>(16933)</samp> - Accept array template ref bound to v-for as observer target - by @eldardada in #5514 <samp>(bccb1)</samp>
- Reintroduce package normalisation to nuxt package - by @43081j in #5551 <samp>(c04c4)</samp>
- docs: Fix typo 'feedbacks' to 'feedback' in work-with-ai.md - by @firstquarterlee in #5447 <samp>(a4253)</samp>
- nuxt: Register formatTimeAgo variants for auto-import - by @ilyaliao, @cursoragent and Claude Opus 5 in #5492 <samp>(8a908)</samp>
- skills: Correct broken relative links in generated function references - by @lazerg and @OrbisK in #5549 <samp>(910db)</samp>
- tests: Deduplicate ci test runs - by @Tofandel in #5509 <samp>(5b272)</samp>
- useBrowserLocation: Skip write-back watching on 'load' state - by @Tobias-Braun and @9romise in #5485 <samp>(fbdd2)</samp>
- useDraggable: End drag on pointercancel - by @ShreeBohara and Claude Opus 5 in #5550 <samp>(6aa9d)</samp>
- useElementSize: Prefill size based on box option - by @meta-syntax in #5524 <samp>(5fe49)</samp>
- useEventBus: Use
tryOnScopeDisposeto avoid operating Vue internal API - by @liangmiQwQ in #5548 <samp>(2cad7)</samp> - useFetch: Ignore stale abort error after refetch succeeds - by @lazerg in #5525 <samp>(84426)</samp>
- useFuse: Trigger fuse ref after setCollection - by @ilyaliao, Claude Opus 5 and @cursoragent in #5479 <samp>(3e10c)</samp>
- useGamepad: Keep updating remaining gamepads after one disconnects - by @lazerg in #5523 <samp>(65328)</samp>
- usePointerSwipe: Handle pointercancel event to reset state and trigger onSwipeEnd - by @DORI2001, Dor Alagem and @43081j in #5379 <samp>(4c08a)</samp>
- useStyleTag: Avoid error when multiple components share the same id - by @ben-lau in #5473 <samp>(6d913)</samp>
- useVibrate: Make interval option optional - by @Aluomolo in #5490 <samp>(305ee)</samp>
- useVirtualList: Recompute range when item size changes - by @Antreesy in #5533 <samp>(0f6d5)</samp>
- useWebSocket: Sync status to 'CLOSED' after explicit close() - by @WuMingDao and @OrbisK in #5471 <samp>(351bf)</samp>
View changes on GitHub
v14.3.0
🚀 Features
- Expose pointer event onLongPress - by @mrcwbr in #5295 <samp>(b1688)</samp>
- createInjectionState: Non-undefined return when default specified - by @Laupetin in #5306 <samp>(b0c51)</samp>
- createReusableTemplate: Add support for specifying component names - by @wbolster in #5300 <samp>(ea29d)</samp>
- nuxt: Add composable variants to auto imports - by @OrbisK in #5285 <samp>(ac2ef)</samp>
- useElementVisibility: Add
controlsoption - by @kricsleo in #5191 <samp>(0cb03)</samp> - useTextareaAutosize: Add optional
maxHeightto limit autosize growth - by @palamarchukser, @antfu and @9romise in #5324 <samp>(1a3e5)</samp>
🐞 Bug Fixes
- Add explicit
./package.jsonexport to all packages - by @babu-ch and @OrbisK in #5343 <samp>(0d989)</samp> - core: Always return ssrValue in useCssSupports before mounted - by @danielroe in #5290 <samp>(76b0b)</samp>
- directive: Create disposable directive func cleanup of side effects unmounted - by @kalu5, @43081j, Raman Paulau and @OrbisK in #5244 <samp>(52d68)</samp>
- docs: Typos in useManualRefHistory, useFocusWithin, useStorageAsync, useIntersectionObserver - by @blowsie, Sam Blowes and @OrbisK in #5329 <samp>(1d9c4)</samp>
- docs: Add
ignoreDeprecationsfor twoslash TS 6.0 compat - by @antfu and Claude Opus 4.6 (1M context) in #5367 <samp>(9d1eb)</samp> - metadata: Cleanup removed function
resolveRef- by @ntnyq in #5307 <samp>(49da8)</samp> - onClickOutside: Detect iframe inside shadow DOM with detectIframe option - by @babu-ch and @OrbisK in #5336 <samp>(1a77b)</samp>
- shared: Align overloads order of watch functions with original version - by @KazariEX in #5288 <samp>(f1d32)</samp>
- useAxios: Handle optional response data safely - by @jahnli in #5318 <samp>(51198)</samp>
- useCached: Update comparator type and improve documentation - by @IceMooncake in #5376 <samp>(d886c)</samp>
- useClipboard: Prevents fail in Safari for async operation - by @MatteoGabriele in #5369 <samp>(5ec56)</samp>
- useSortable: Re-query DOM on every
start()for string selectors - by @Mini-ghost in #5374 <samp>(3341f)</samp> - useVirtualList: React to changes made in mutable arrays properly - by @dcherman in #5267 <samp>(7069e)</samp>
- useWakeLock: Auto-release wake lock on component unmount - by @ProgrammingWithSid and @OrbisK in #5271 <samp>(43937)</samp>
- useWebSocket: Race condition caused by onopen/onclose events. - by @DanCardin, @antfu and @9romise in #5175 <samp>(6661c)</samp>
- whenever: Improve old value types - by @VChet in #5096 <samp>(979c6)</samp>
🏎 Performance
- Replace
deepRefwithshallowRefwhere appropriate - by @9romise in #5293 <samp>(80004)</samp>
View changes on GitHub
v14.2.1
🚀 Features
- Add skills at the root directory for skills cli - by @antfu <samp>(c005d)</samp>
- skills: Transfer
@vueuse/skills- by @serkodev in #5286 <samp>(532ac)</samp>
🐞 Bug Fixes
- useRafFn: Resolve reactive null fpsLimit not being handled - by @nemanjamalesija in #5284 <samp>(8ce0d)</samp>
View changes on GitHub
v14.2.0
🚀 Features
- Support configurable scheduler for timed composables - by @9romise in #5129 <samp>(66aad)</samp>
- Allow vue-router 5 as peer deps - by @Ericlm in #5269 <samp>(7c94a)</samp>
- useCssSupports: Add
useCssSupports- by @OrbisK in #5266 <samp>(c1282)</samp> - useDraggable: Auto-scroll with restricted dragging within the container - by @Gazoon007, Alfarish Fizikri, Robin and @OrbisK in #4472 <samp>(a8a85)</samp>
- useElementVisibility: Inherit
rootMarginfromuseIntersectionObserver- by @9romise in #5207 <samp>(46682)</samp> - useIntersectionObserver: Make
rootMarginreactive - by @doyuli, @ilyaliao and @9romise in #4934 <samp>(53abe)</samp> - useSortable: Add
watchElementoption for auto-reinitialize on element change - by @Mini-ghost and @ilyaliao in #5189 <samp>(17ea2)</samp>
🐞 Bug Fixes
- nuxt: Ensure excludes disabledFunctions' alias - by @jinyongp and @9romise in #5240 <samp>(76829)</samp>
- refManualReset: Add explicit return type annotation - by @batuhan-bas in #5246 <samp>(13bbb)</samp>
- useAsyncState: Ensure
executereturn the actual data - by @9romise in #5167 <samp>(0c346)</samp> - useDocumentVisibility: Fix type inference from string to Documen… - by @webfanzc and cowhorse in #5248 <samp>(e8be8)</samp>
- useFocusTrap: Update
focus-traprange to^7 - by ** ^8(#5270)** <samp>()</samp> - useInfiniteScroll: Improve promise handling and add flush post to watch - by @nhquyss and @9romise in #5122 <samp>(abcea)</samp>
- useMagicKeys: Handle undefined key in keyboard events - by @LouisLau-art, LouisLau-art and @OrbisK in #5225 <samp>(65e25)</samp>
View changes on GitHub
v14.1.0
🚀 Features
- useDropZone: Add checkValidity function - by @kolaente in #5169 <samp>(aee84)</samp>
- useElementVisibility: Add
initialValueoption - by @kricsleo and @9romise in #5159 <samp>(13f36)</samp> - useMouseInElement: Add support for tracking inline-level elements - by @siavava and @9romise in #5049 <samp>(62dfb)</samp>
- useTimeAgoIntl: Custom units - by @Menci in #5188 <samp>(c7d09)</samp>
- useWebSocket:
autoConnect.delaysupport function - by @YuchenWell, Anthony Fu and @9romise in #5089 <samp>(176f2)</samp>
🐞 Bug Fixes
- Typescript type of
isIOSconstant - by @toofishes in #5163 <samp>(60888)</samp> - computedWithControl: Allow different types in watch sources array - by @kricsleo in #5184 <samp>(bc4ac)</samp>
- types: Allow async functions in useDebounceFn and useThrottleFn - by @xiaoxiaohuayu in #5131 <samp>(7fb7a)</samp>
- types: Deprecate embeded
ResizeObserverSizetypes - by @9romise in #5127 <samp>(d7a07)</samp> - useArrayReduce: Export
UseArrayReduceReturntype - by @michaelcozzolino in #5177 <samp>(e1204)</samp> - useAsyncQueue: Trigger onFinished when the last task is rejected - by @keeplearning66 and @9romise in #5144 <samp>(c4a46)</samp>
- useClipboard: Add readonly attribute to textarea fallback to support Safari 15 - by @huajianjiu in #5179 <samp>(ef0c4)</samp>
- useInfiniteScroll: Make canLoadMore reactive - by @nhquyss in #5110 <samp>(3dc2d)</samp>
- useMagicKeys: Handle empty key events to prevent errors - by @babu-ch and @9romise in #5149 <samp>(f8aec)</samp>
- useScroll: Use configurable window's
getComputedStyle- by @9romise in #5150 <samp>(f74a6)</samp> - useSpeechRecognition: Catch the error while calling method start - by @ben-lau, liubaobin and @9romise in #5142 <samp>(94f1e)</samp>
- useTimeout: Fix type typo - by @keeplearning66, Robin and Anthony Fu in #5147 <samp>(31e5c)</samp>
View changes on GitHub
v14.0.0
🚨 Breaking Changes
- Migrate to
tsdown, move dist files - by @9romise and Anthony Fu in #5004 <samp>(a2e2c)</samp> - Deprecate alias exports in favor of original function names - by @9romise in #5009 <samp>(e5f74)</samp>
- Requires Vue 3.5 - by @antfu <samp>(fe458)</samp>
- components: Refactor components and make them consistent - by @ilyaliao in #4912 <samp>(8c521)</samp>
- computedAsync: Default to
flush: sync- by @ferferga in #4752 <samp>(573bf)</samp> - createSharedComposable: Return only the sharedComposable on client side - by @9romise in #4997 <samp>(73aad)</samp>
- firebase: Upgrade to firebase v12 - by @antfu <samp>(8cb0b)</samp>
- nuxt: Use Nuxt v4 kit - by @antfu <samp>(070fc)</samp>
- shared: Drop some deprecated apis - by @9romise in #5010 <samp>(971b2)</samp>
- useClipboard: Use
readonly()instead of type assertionComputed- by @9romise in #5081 <samp>(67812)</samp> - useSwipe: Remove isPassiveEventSupported - by @pkc918 in #4886 <samp>(620a9)</samp>
- useThrottleFn: Align with traditional throttle behavior - by @IceMooncake and @ilyaliao in #4923 <samp>(cefd2)</samp>
🚀 Features
- computedEager: Deprecate
computedEager- by @ilyaliao in #5034 <samp>(26a7d)</samp> - onClickOutside: Allow the value of target to be a getter - by @keeplearning66 in #5098 <samp>(7133c)</samp>
- onLongPress: Allow function as value in delay - by @keeplearning66 in #4979 <samp>(415f3)</samp>
- refManualReset: New function - by @phk422, @OrbisK, @ilyaliao and Anthony Fu in #4644 <samp>(81bb3)</samp>
- useAsyncState: Allow initial value to be a ref - by @43081j in #4992 <samp>(e38e8)</samp>
- useIdle: Implement
Stoppableinterface - by @dpbs-715 and Anthony Fu in #5068 <samp>(3f96a)</samp> - useTextSelection: Set initial value for use text selection - by @kevinluo201 in #5092 <samp>(dbb3e)</samp>
- useTransition: Add support for custom interpolator functions - by @scottbedard and Anthony Fu in #5011 <samp>(cf905)</samp>
- watch: Update watch return typo in watchExtractedObservable, watchDebounced, watchDeep, watchImmediate, watchOnce, watchThrottled and watchWithFilter - by @ArthurDarkstone in #4896 <samp>(b8102)</samp>
- watchAtMost: Add pause and resume to return value - by @ArthurDarkstone in #4897 <samp>(d3176)</samp>
- watchPausable: Deprecate
watchPausable- by @ilyaliao in #5040 <samp>(4a28b)</samp>
🐞 Bug Fixes
- Update return type of createReusableTemplate and createTemplateP… - by @ArthurDarkstone in #4962 <samp>(5fd3a)</samp>
- Update return types for createTemplatePromise, useMagicKeys, use… - by @ArthurDarkstone in #4963 <samp>(554b7)</samp>
- Update parameter types to use ComponentInternalInstance in lifec… - by @ArthurDarkstone in #5060 <samp>(a49a3)</samp>
- integrations: Use relative import in
component.ts- by @9romise in #5025 <samp>(d5bcd)</samp> - shared: Support provideLocal/injectLocal in vapor mode - by @ZKunZhang and Zhaokun Zhang in #5050 <samp>(51872)</samp>
- tryOnScopeDispose: Add optional failSilently parameter and updat… - by @ArthurDarkstone and @ilyaliao in #5061 <samp>(a4862)</samp>
- types: Update type casting for watch functions to use WatchSource<t> - by @ArthurDarkstone in #4966 <samp>(00a72)</samp>
- useAsyncState: Track latest execution to avoid newer results being replaced by outdated ones - by @andreww2012 in #5047 <samp>(3e6cb)</samp>
- useFullscreen: Specify return types for request, exit, and enabl… - by @ArthurDarkstone in #4965 <samp>(8ac73)</samp>
- useMagicKeys: Clearing of other keys after releasing alt - by @NoiseFan in #5037 <samp>(3f113)</samp>
- useShare: Improve the accuracy of sharing logic - by @ArthurDarkstone in #5048 <samp>(61e1b)</samp>
- useUrlSearchParams: Restore proper history and navigation behavior - by @yosong-github and @ilyaliao in #4969 <samp>(1cff4)</samp>
- useUserMedia: Add deep watch to constraints - by @babu-ch and @ilyaliao in #5046 <samp>(4b3e9)</samp>
View changes on GitHub
v13.9.0
🚀 Features
- onLongPress: Allow function as value in delay - by @keeplearning66 in #4979 <samp>(415f3)</samp>
- useAsyncState: Allow initial value to be a ref - by @43081j in #4992 <samp>(e38e8)</samp>
🐞 Bug Fixes
- types: Update type casting for watch functions to use WatchSource<t> - by @ArthurDarkstone in #4966 <samp>(00a72)</samp>
- useUrlSearchParams: Restore proper history and navigation behavior - by @yosong-github and @ilyaliao in #4969 <samp>(1cff4)</samp>
View changes on GitHub
v13.8.0
🚀 Features
- useEventSource: Add
serializer- by @imddc and @ilyaliao in #4953 <samp>(64651)</samp>
🏎 Performance
- docs: Replace
twoslashwith own function for comparing js snippet - by @serkodev in #4977 <samp>(909fd)</samp> - usePointer: Use shallowRef for better performance - by @broBinChen and xiaobin in #4980 <samp>(ce09e)</samp>
- usePreferredLanguages: Use shallowRef for better performance - by @ilyaliao in #4973 <samp>(361c8)</samp>
View changes on GitHub
v13.7.0
🚨 Breaking Changes
- useAsyncState: Set globalThis.reportError as default onError - by @kalu5 in #4951 <samp>(f6e88)</samp>
🚀 Features
- computedAsync: Use globalThis.reportError as default onError - by @babu-ch in #4943 <samp>(226a2)</samp>
- useClipboardItems: Expose
read()- by @OrbisK in #4954 <samp>(d03b2)</samp> - useDevicePixelRatio: Improve types - by @doyuli in #4927 <samp>(1b3d4)</samp>
- useSpeechSynthesisOptions: Add option
onBoundary- by @pkc918 in #4960 <samp>(c0dca)</samp> - useTimeAgoIntl: Add
useTimaAgoIntl- by @northword and Anthony Fu in #4821 <samp>(81815)</samp>
🐞 Bug Fixes
- ci: Avoid duplicate
nr updateexecution indocs:build- by @serkodev in #4925 <samp>(a73ee)</samp> - useAnimate: Respect
immediate: falsewith conditionally rendered elements - by @curtgrimes in #4947 <samp>(90c7f)</samp> - useGamepad: Correct type assertion for vibrationActuator - by @ArthurDarkstone in #4964 <samp>(c5277)</samp>
- useStorage: Make sure to always read data if new value is
undefined- by @OrbisK in #4957 <samp>(22116)</samp>
🏎 Performance
- twoslash: Optimize twoslash cache - by @doyuli in #4939 <samp>(93064)</samp>
- useMutationObserver: Watch ref directly - by @VividLemon in #4940 <samp>(01cd9)</samp>
View changes on GitHub
v13.6.0
🚀 Features
- Mark templateRef as deprecated - by @ilyaliao in #4894 <samp>(0271e)</samp>
- useFileDialog: Add MaybRef to multiple, accept, capture, reset, and directory - by @hunterwilhelm, Anthony Fu and @antfu in #4813 <samp>(a44bd)</samp>
- useFocusTrap: Expose updateContainerElements for dynamic contai… - by @PeikyLiu and @ilyaliao in #4849 <samp>(3d5e5)</samp>
- useIDBKeyval: Add
options.serializer- by @matthewjumpsoffbuildings, @OrbisK and @43081j in #4781 <samp>(bb831)</samp> - useStorageAsync: Add
onReadyoption and Promise return - by @asika32764, Fernando Fernández, @OrbisK and Anthony Fu in #4158 <samp>(3a2df)</samp> - useTransition: Support custom window - by @byronogis and Anthony Fu in #4850 <samp>(a75f4)</samp>
🐞 Bug Fixes
- onClickOutside: The order of overload signatures - by @whiteyebrw, @ilyaliao and Anthony Fu in #4839 <samp>(d5812)</samp>
- types: Use Vue's native
MaybeRefandMaybeRefOrGetterinstead - by @RYGRIT in #4913 <samp>(2d179)</samp> - useDraggable: Add capture prop to component - by @wgh970312 in #4911 <samp>(547f8)</samp>
- useMagicKeys: Prevent incorrect clearing of other keys after releasing shift - by @keeplearning66 in #4916 <samp>(d7f28)</samp>
- useMouseInElement: Correctly update elementX and elementY - by @cszhjh and @ilyaliao in #4846 <samp>(cf02b)</samp>
- useVirtualList: Resolve invalid watch source - by @cszhjh and @OrbisK in #4857 <samp>(d2381)</samp>
View changes on GitHub
[`v13.5
[!IMPORTANT] ✂ PR body was truncated to here.
Configuration
📅 Schedule: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
- If you want to rebase/retry this PR, check this box
This PR was generated by Mend Renovate. View the repository job log.