PackageTrack

npm · #3623

@vueuse/metadata

14.4.0vueuse/vueuse

Metadata for VueUse functions

Release timeline

133 releases since 2022
20222023202420252026

Releases

  1. 14.4.029 Jul 2026
    Release notes

       🚀 Features

    • Update skills  -  by @OrbisK in https://github.com/vueuse/vueuse/issues/5491 <samp>(f4758)</samp>
    • nuxt: Disable useColorMode auto import if @nuxtjs/color-mode is detected  -  by @OrbisK in https://github.com/vueuse/vueuse/issues/5476 <samp>(60687)</samp>
    • nuxt: Generate nuxt module builder output layout  -  by @userquin and @43081j in https://github.com/vueuse/vueuse/issues/5503 <samp>(40a1f)</samp>
    • onStartTyping: Add more configurable options for onStartTyping  -  by @LightQuanta and @9romise in https://github.com/vueuse/vueuse/issues/5395 <samp>(1f2b7)</samp>
    • useDebounceFn: Add flush and isPending to filter system  -  by @pcoterecollective, @OrbisK and @antfu in https://github.com/vueuse/vueuse/issues/5259 <samp>(4aa18)</samp>
    • useElementOverflow: New function  -  by @inside5545, 苏俊言, @antfu, @ilyaliao, @OrbisK, @43081j and @9romise in https://github.com/vueuse/vueuse/issues/4094 <samp>(d49f5)</samp>
    • useSpeechRecognition: Expose confidence of latest result  -  by @SAY-5 in https://github.com/vueuse/vueuse/issues/5398 <samp>(17dc9)</samp>
    • useVirtualList: Add options behavior, block and inline to exposed scrollTo method  -  by @laurens94, @OrbisK, @43081j and @ilyaliao in https://github.com/vueuse/vueuse/issues/4905 <samp>(01875)</samp>

       🐞 Bug Fixes

    • Drop unnecessary PURE annotation to avoid Rollup warning  -  by @serkodev and @9romise in https://github.com/vueuse/vueuse/issues/5388 <samp>(16933)</samp>
    • Accept array template ref bound to v-for as observer target  -  by @eldardada in https://github.com/vueuse/vueuse/issues/5514 <samp>(bccb1)</samp>
    • Reintroduce package normalisation to nuxt package  -  by @43081j in https://github.com/vueuse/vueuse/issues/5551 <samp>(c04c4)</samp>
    • docs: Fix typo 'feedbacks' to 'feedback' in work-with-ai.md  -  by @firstquarterlee in https://github.com/vueuse/vueuse/issues/5447 <samp>(a4253)</samp>
    • nuxt: Register formatTimeAgo variants for auto-import  -  by @ilyaliao, @cursoragent and Claude Opus 5 in https://github.com/vueuse/vueuse/issues/5492 <samp>(8a908)</samp>
    • skills: Correct broken relative links in generated function references  -  by @lazerg and @OrbisK in https://github.com/vueuse/vueuse/issues/5549 <samp>(910db)</samp>
    • tests: Deduplicate ci test runs  -  by @Tofandel in https://github.com/vueuse/vueuse/issues/5509 <samp>(5b272)</samp>
    • useBrowserLocation: Skip write-back watching on 'load' state  -  by @Tobias-Braun and @9romise in https://github.com/vueuse/vueuse/issues/5485 <samp>(fbdd2)</samp>
    • useDraggable: End drag on pointercancel  -  by @ShreeBohara and Claude Opus 5 in https://github.com/vueuse/vueuse/issues/5550 <samp>(6aa9d)</samp>
    • useElementSize: Prefill size based on box option  -  by @meta-syntax in https://github.com/vueuse/vueuse/issues/5524 <samp>(5fe49)</samp>
    • useEventBus: Use tryOnScopeDispose to avoid operating Vue internal API  -  by @liangmiQwQ in https://github.com/vueuse/vueuse/issues/5548 <samp>(2cad7)</samp>
    • useFetch: Ignore stale abort error after refetch succeeds  -  by @lazerg in https://github.com/vueuse/vueuse/issues/5525 <samp>(84426)</samp>
    • useFuse: Trigger fuse ref after setCollection  -  by @ilyaliao, Claude Opus 5 and @cursoragent in https://github.com/vueuse/vueuse/issues/5479 <samp>(3e10c)</samp>
    • useGamepad: Keep updating remaining gamepads after one disconnects  -  by @lazerg in https://github.com/vueuse/vueuse/issues/5523 <samp>(65328)</samp>
    • usePointerSwipe: Handle pointercancel event to reset state and trigger onSwipeEnd  -  by @DORI2001, Dor Alagem and @43081j in https://github.com/vueuse/vueuse/issues/5379 <samp>(4c08a)</samp>
    • useStyleTag: Avoid error when multiple components share the same id  -  by @ben-lau in https://github.com/vueuse/vueuse/issues/5473 <samp>(6d913)</samp>
    • useVibrate: Make interval option optional  -  by @Aluomolo in https://github.com/vueuse/vueuse/issues/5490 <samp>(305ee)</samp>
    • useVirtualList: Recompute range when item size changes  -  by @Antreesy in https://github.com/vueuse/vueuse/issues/5533 <samp>(0f6d5)</samp>
    • useWebSocket: Sync status to 'CLOSED' after explicit close()  -  by @WuMingDao and @OrbisK in https://github.com/vueuse/vueuse/issues/5471 <samp>(351bf)</samp>
        View changes on GitHub
    Open source →
  2. 14.3.01 May 2026
    Release notes

       🚀 Features

    • Expose pointer event onLongPress  -  by @mrcwbr in https://github.com/vueuse/vueuse/issues/5295 <samp>(b1688)</samp>
    • createInjectionState: Non-undefined return when default specified  -  by @Laupetin in https://github.com/vueuse/vueuse/issues/5306 <samp>(b0c51)</samp>
    • createReusableTemplate: Add support for specifying component names  -  by @wbolster in https://github.com/vueuse/vueuse/issues/5300 <samp>(ea29d)</samp>
    • nuxt: Add composable variants to auto imports  -  by @OrbisK in https://github.com/vueuse/vueuse/issues/5285 <samp>(ac2ef)</samp>
    • useElementVisibility: Add controls option  -  by @kricsleo in https://github.com/vueuse/vueuse/issues/5191 <samp>(0cb03)</samp>
    • useTextareaAutosize: Add optional maxHeight to limit autosize growth  -  by @palamarchukser, @antfu and @9romise in https://github.com/vueuse/vueuse/issues/5324 <samp>(1a3e5)</samp>

       🐞 Bug Fixes

    • Add explicit ./package.json export to all packages  -  by @babu-ch and @OrbisK in https://github.com/vueuse/vueuse/issues/5343 <samp>(0d989)</samp>
    • core: Always return ssrValue in useCssSupports before mounted  -  by @danielroe in https://github.com/vueuse/vueuse/issues/5290 <samp>(76b0b)</samp>
    • directive: Create disposable directive func cleanup of side effects unmounted  -  by @kalu5, @43081j, Raman Paulau and @OrbisK in https://github.com/vueuse/vueuse/issues/5244 <samp>(52d68)</samp>
    • docs: Typos in useManualRefHistory, useFocusWithin, useStorageAsync, useIntersectionObserver  -  by @blowsie, Sam Blowes and @OrbisK in https://github.com/vueuse/vueuse/issues/5329 <samp>(1d9c4)</samp>
    • docs: Add ignoreDeprecations for twoslash TS 6.0 compat  -  by @antfu and Claude Opus 4.6 (1M context) in https://github.com/vueuse/vueuse/issues/5367 <samp>(9d1eb)</samp>
    • metadata: Cleanup removed function resolveRef  -  by @ntnyq in https://github.com/vueuse/vueuse/issues/5307 <samp>(49da8)</samp>
    • onClickOutside: Detect iframe inside shadow DOM with detectIframe option  -  by @babu-ch and @OrbisK in https://github.com/vueuse/vueuse/issues/5336 <samp>(1a77b)</samp>
    • shared: Align overloads order of watch functions with original version  -  by @KazariEX in https://github.com/vueuse/vueuse/issues/5288 <samp>(f1d32)</samp>
    • useAxios: Handle optional response data safely  -  by @jahnli in https://github.com/vueuse/vueuse/issues/5318 <samp>(51198)</samp>
    • useCached: Update comparator type and improve documentation  -  by @IceMooncake in https://github.com/vueuse/vueuse/issues/5376 <samp>(d886c)</samp>
    • useClipboard: Prevents fail in Safari for async operation  -  by @MatteoGabriele in https://github.com/vueuse/vueuse/issues/5369 <samp>(5ec56)</samp>
    • useSortable: Re-query DOM on every start() for string selectors  -  by @Mini-ghost in https://github.com/vueuse/vueuse/issues/5374 <samp>(3341f)</samp>
    • useVirtualList: React to changes made in mutable arrays properly  -  by @dcherman in https://github.com/vueuse/vueuse/issues/5267 <samp>(7069e)</samp>
    • useWakeLock: Auto-release wake lock on component unmount  -  by @ProgrammingWithSid and @OrbisK in https://github.com/vueuse/vueuse/issues/5271 <samp>(43937)</samp>
    • useWebSocket: Race condition caused by onopen/onclose events.  -  by @DanCardin, @antfu and @9romise in https://github.com/vueuse/vueuse/issues/5175 <samp>(6661c)</samp>
    • whenever: Improve old value types  -  by @VChet in https://github.com/vueuse/vueuse/issues/5096 <samp>(979c6)</samp>

       🏎 Performance

    • Replace deepRef with shallowRef where appropriate  -  by @9romise in https://github.com/vueuse/vueuse/issues/5293 <samp>(80004)</samp>
        View changes on GitHub
    Open source →
  3. 14.2.110 Feb 2026
    Release notes

       🚀 Features

    • Add skills at the root directory for skills cli  -  by @antfu <samp>(c005d)</samp>
    • skills: Transfer @vueuse/skills  -  by @serkodev in https://github.com/vueuse/vueuse/issues/5286 <samp>(532ac)</samp>

       🐞 Bug Fixes

    • useRafFn: Resolve reactive null fpsLimit not being handled  -  by @nemanjamalesija in https://github.com/vueuse/vueuse/issues/5284 <samp>(8ce0d)</samp>
        View changes on GitHub
    Open source →
  4. 14.2.031 Jan 2026
    Release notes

       🚀 Features

    • Support configurable scheduler for timed composables  -  by @9romise in https://github.com/vueuse/vueuse/issues/5129 <samp>(66aad)</samp>
    • Allow vue-router 5 as peer deps  -  by @Ericlm in https://github.com/vueuse/vueuse/issues/5269 <samp>(7c94a)</samp>
    • useCssSupports: Add useCssSupports  -  by @OrbisK in https://github.com/vueuse/vueuse/issues/5266 <samp>(c1282)</samp>
    • useDraggable: Auto-scroll with restricted dragging within the container  -  by @Gazoon007, Alfarish Fizikri, Robin and @OrbisK in https://github.com/vueuse/vueuse/issues/4472 <samp>(a8a85)</samp>
    • useElementVisibility: Inherit rootMargin from useIntersectionObserver  -  by @9romise in https://github.com/vueuse/vueuse/issues/5207 <samp>(46682)</samp>
    • useIntersectionObserver: Make rootMargin reactive  -  by @doyuli, @ilyaliao and @9romise in https://github.com/vueuse/vueuse/issues/4934 <samp>(53abe)</samp>
    • useSortable: Add watchElement option for auto-reinitialize on element change  -  by @Mini-ghost and @ilyaliao in https://github.com/vueuse/vueuse/issues/5189 <samp>(17ea2)</samp>

       🐞 Bug Fixes

    • nuxt: Ensure excludes disabledFunctions' alias  -  by @jinyongp and @9romise in https://github.com/vueuse/vueuse/issues/5240 <samp>(76829)</samp>
    • refManualReset: Add explicit return type annotation  -  by @batuhan-bas in https://github.com/vueuse/vueuse/issues/5246 <samp>(13bbb)</samp>
    • useAsyncState: Ensure execute return the actual data  -  by @9romise in https://github.com/vueuse/vueuse/issues/5167 <samp>(0c346)</samp>
    • useDocumentVisibility: Fix type inference from string to Documen…  -  by @webfanzc and cowhorse in https://github.com/vueuse/vueuse/issues/5248 <samp>(e8be8)</samp>
    • useFocusTrap: Update focus-trap range to ^7 &nbsp;-&nbsp; by ** ^8 (#5270)** <samp>()</samp>
    • useInfiniteScroll: Improve promise handling and add flush post to watch  -  by @nhquyss and @9romise in https://github.com/vueuse/vueuse/issues/5122 <samp>(abcea)</samp>
    • useMagicKeys: Handle undefined key in keyboard events  -  by @LouisLau-art, LouisLau-art and @OrbisK in https://github.com/vueuse/vueuse/issues/5225 <samp>(65e25)</samp>
        View changes on GitHub
    Open source →
  5. 14.1.027 Nov 2025
    Release notes

       🚀 Features

    • useDropZone: Add checkValidity function  -  by @kolaente in https://github.com/vueuse/vueuse/issues/5169 <samp>(aee84)</samp>
    • useElementVisibility: Add initialValue option  -  by @kricsleo and @9romise in https://github.com/vueuse/vueuse/issues/5159 <samp>(13f36)</samp>
    • useMouseInElement: Add support for tracking inline-level elements  -  by @siavava and @9romise in https://github.com/vueuse/vueuse/issues/5049 <samp>(62dfb)</samp>
    • useTimeAgoIntl: Custom units  -  by @Menci in https://github.com/vueuse/vueuse/issues/5188 <samp>(c7d09)</samp>
    • useWebSocket: autoConnect.delay support function  -  by @YuchenWell, Anthony Fu and @9romise in https://github.com/vueuse/vueuse/issues/5089 <samp>(176f2)</samp>

       🐞 Bug Fixes

    • Typescript type of isIOS constant  -  by @toofishes in https://github.com/vueuse/vueuse/issues/5163 <samp>(60888)</samp>
    • computedWithControl: Allow different types in watch sources array  -  by @kricsleo in https://github.com/vueuse/vueuse/issues/5184 <samp>(bc4ac)</samp>
    • types: Allow async functions in useDebounceFn and useThrottleFn  -  by @xiaoxiaohuayu in https://github.com/vueuse/vueuse/issues/5131 <samp>(7fb7a)</samp>
    • types: Deprecate embeded ResizeObserverSize types  -  by @9romise in https://github.com/vueuse/vueuse/issues/5127 <samp>(d7a07)</samp>
    • useArrayReduce: Export UseArrayReduceReturn type  -  by @michaelcozzolino in https://github.com/vueuse/vueuse/issues/5177 <samp>(e1204)</samp>
    • useAsyncQueue: Trigger onFinished when the last task is rejected  -  by @keeplearning66 and @9romise in https://github.com/vueuse/vueuse/issues/5144 <samp>(c4a46)</samp>
    • useClipboard: Add readonly attribute to textarea fallback to support Safari 15  -  by @huajianjiu in https://github.com/vueuse/vueuse/issues/5179 <samp>(ef0c4)</samp>
    • useInfiniteScroll: Make canLoadMore reactive  -  by @nhquyss in https://github.com/vueuse/vueuse/issues/5110 <samp>(3dc2d)</samp>
    • useMagicKeys: Handle empty key events to prevent errors  -  by @babu-ch and @9romise in https://github.com/vueuse/vueuse/issues/5149 <samp>(f8aec)</samp>
    • useScroll: Use configurable window's getComputedStyle  -  by @9romise in https://github.com/vueuse/vueuse/issues/5150 <samp>(f74a6)</samp>
    • useSpeechRecognition: Catch the error while calling method start  -  by @ben-lau, liubaobin and @9romise in https://github.com/vueuse/vueuse/issues/5142 <samp>(94f1e)</samp>
    • useTimeout: Fix type typo  -  by @keeplearning66, Robin and Anthony Fu in https://github.com/vueuse/vueuse/issues/5147 <samp>(31e5c)</samp>
        View changes on GitHub
    Open source →
  6. 14.0.022 Oct 2025
    Release notes

       🚨 Breaking Changes

    • Migrate to tsdown, move dist files  -  by @9romise and Anthony Fu in https://github.com/vueuse/vueuse/issues/5004 <samp>(a2e2c)</samp>
    • Deprecate alias exports in favor of original function names  -  by @9romise in https://github.com/vueuse/vueuse/issues/5009 <samp>(e5f74)</samp>
    • Requires Vue 3.5  -  by @antfu <samp>(fe458)</samp>
    • components: Refactor components and make them consistent  -  by @ilyaliao in https://github.com/vueuse/vueuse/issues/4912 <samp>(8c521)</samp>
    • computedAsync: Default to flush: sync  -  by @ferferga in https://github.com/vueuse/vueuse/issues/4752 <samp>(573bf)</samp>
    • createSharedComposable: Return only the sharedComposable on client side  -  by @9romise in https://github.com/vueuse/vueuse/issues/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 https://github.com/vueuse/vueuse/issues/5010 <samp>(971b2)</samp>
    • useClipboard: Use readonly() instead of type assertion Computed  -  by @9romise in https://github.com/vueuse/vueuse/issues/5081 <samp>(67812)</samp>
    • useSwipe: Remove isPassiveEventSupported  -  by @pkc918 in https://github.com/vueuse/vueuse/issues/4886 <samp>(620a9)</samp>
    • useThrottleFn: Align with traditional throttle behavior  -  by @IceMooncake and @ilyaliao in https://github.com/vueuse/vueuse/issues/4923 <samp>(cefd2)</samp>

       🚀 Features

    • computedEager: Deprecate computedEager  -  by @ilyaliao in https://github.com/vueuse/vueuse/issues/5034 <samp>(26a7d)</samp>
    • onClickOutside: Allow the value of target to be a getter  -  by @keeplearning66 in https://github.com/vueuse/vueuse/issues/5098 <samp>(7133c)</samp>
    • onLongPress: Allow function as value in delay  -  by @keeplearning66 in https://github.com/vueuse/vueuse/issues/4979 <samp>(415f3)</samp>
    • refManualReset: New function  -  by @phk422, @OrbisK, @ilyaliao and Anthony Fu in https://github.com/vueuse/vueuse/issues/4644 <samp>(81bb3)</samp>
    • useAsyncState: Allow initial value to be a ref  -  by @43081j in https://github.com/vueuse/vueuse/issues/4992 <samp>(e38e8)</samp>
    • useIdle: Implement Stoppable interface  -  by @dpbs-715 and Anthony Fu in https://github.com/vueuse/vueuse/issues/5068 <samp>(3f96a)</samp>
    • useTextSelection: Set initial value for use text selection  -  by @kevinluo201 in https://github.com/vueuse/vueuse/issues/5092 <samp>(dbb3e)</samp>
    • useTransition: Add support for custom interpolator functions  -  by @scottbedard and Anthony Fu in https://github.com/vueuse/vueuse/issues/5011 <samp>(cf905)</samp>
    • watch: Update watch return typo in watchExtractedObservable, watchDebounced, watchDeep, watchImmediate, watchOnce, watchThrottled and watchWithFilter  -  by @ArthurDarkstone in https://github.com/vueuse/vueuse/issues/4896 <samp>(b8102)</samp>
    • watchAtMost: Add pause and resume to return value  -  by @ArthurDarkstone in https://github.com/vueuse/vueuse/issues/4897 <samp>(d3176)</samp>
    • watchPausable: Deprecate watchPausable  -  by @ilyaliao in https://github.com/vueuse/vueuse/issues/5040 <samp>(4a28b)</samp>

       🐞 Bug Fixes

    • Update return type of createReusableTemplate and createTemplateP…  -  by @ArthurDarkstone in https://github.com/vueuse/vueuse/issues/4962 <samp>(5fd3a)</samp>
    • Update return types for createTemplatePromise, useMagicKeys, use…  -  by @ArthurDarkstone in https://github.com/vueuse/vueuse/issues/4963 <samp>(554b7)</samp>
    • Update parameter types to use ComponentInternalInstance in lifec…  -  by @ArthurDarkstone in https://github.com/vueuse/vueuse/issues/5060 <samp>(a49a3)</samp>
    • integrations: Use relative import in component.ts  -  by @9romise in https://github.com/vueuse/vueuse/issues/5025 <samp>(d5bcd)</samp>
    • shared: Support provideLocal/injectLocal in vapor mode  -  by @ZKunZhang and Zhaokun Zhang in https://github.com/vueuse/vueuse/issues/5050 <samp>(51872)</samp>
    • tryOnScopeDispose: Add optional failSilently parameter and updat…  -  by @ArthurDarkstone and @ilyaliao in https://github.com/vueuse/vueuse/issues/5061 <samp>(a4862)</samp>
    • types: Update type casting for watch functions to use WatchSource<T>  -  by @ArthurDarkstone in https://github.com/vueuse/vueuse/issues/4966 <samp>(00a72)</samp>
    • useAsyncState: Track latest execution to avoid newer results being replaced by outdated ones  -  by @andreww2012 in https://github.com/vueuse/vueuse/issues/5047 <samp>(3e6cb)</samp>
    • useFullscreen: Specify return types for request, exit, and enabl…  -  by @ArthurDarkstone in https://github.com/vueuse/vueuse/issues/4965 <samp>(8ac73)</samp>
    • useMagicKeys: Clearing of other keys after releasing alt  -  by @NoiseFan in https://github.com/vueuse/vueuse/issues/5037 <samp>(3f113)</samp>
    • useShare: Improve the accuracy of sharing logic  -  by @ArthurDarkstone in https://github.com/vueuse/vueuse/issues/5048 <samp>(61e1b)</samp>
    • useUrlSearchParams: Restore proper history and navigation behavior  -  by @yosong-github and @ilyaliao in https://github.com/vueuse/vueuse/issues/4969 <samp>(1cff4)</samp>
    • useUserMedia: Add deep watch to constraints  -  by @babu-ch and @ilyaliao in https://github.com/vueuse/vueuse/issues/5046 <samp>(4b3e9)</samp>
        View changes on GitHub
    Open source →
  7. 14.0.0-beta.119 Sept 2025pre-release
    Release notes

       🚀 Features

    • useTransition: Add support for custom interpolator functions  -  by @scottbedard and Anthony Fu in https://github.com/vueuse/vueuse/issues/5011 <samp>(cf905)</samp>

       🐞 Bug Fixes

    • useAsyncState: Track latest execution to avoid newer results being replaced by outdated ones  -  by @andreww2012 in https://github.com/vueuse/vueuse/issues/5047 <samp>(3e6cb)</samp>
    • useShare: Improve the accuracy of sharing logic  -  by @ArthurDarkstone in https://github.com/vueuse/vueuse/issues/5048 <samp>(61e1b)</samp>
    • useUserMedia: Add deep watch to constraints  -  by @babu-ch and @ilyaliao in https://github.com/vueuse/vueuse/issues/5046 <samp>(4b3e9)</samp>
        View changes on GitHub
    Open source →
  8. 14.0.0-alpha.316 Sept 2025pre-release
    Release notes

       🚨 Breaking Changes

    • createSharedComposable: Return only the sharedComposable on client side  -  by @9romise in https://github.com/vueuse/vueuse/issues/4997 <samp>(73aad)</samp>

       🚀 Features

    • computedEager: Deprecate computedEager  -  by @ilyaliao in https://github.com/vueuse/vueuse/issues/5034 <samp>(26a7d)</samp>
    • watch: Update watch return typo in watchExtractedObservable, watchDebounced, watchDeep, watchImmediate, watchOnce, watchThrottled and watchWithFilter  -  by @ArthurDarkstone in https://github.com/vueuse/vueuse/issues/4896 <samp>(b8102)</samp>
    • watchAtMost: Add pause and resume to return value  -  by @ArthurDarkstone in https://github.com/vueuse/vueuse/issues/4897 <samp>(d3176)</samp>
    • watchPausable: Deprecate watchPausable  -  by @ilyaliao in https://github.com/vueuse/vueuse/issues/5040 <samp>(4a28b)</samp>

       🐞 Bug Fixes

    • Update return type of createReusableTemplate and createTemplateP…  -  by @ArthurDarkstone in https://github.com/vueuse/vueuse/issues/4962 <samp>(5fd3a)</samp>
    • Update return types for createTemplatePromise, useMagicKeys, use…  -  by @ArthurDarkstone in https://github.com/vueuse/vueuse/issues/4963 <samp>(554b7)</samp>
    • useFullscreen: Specify return types for request, exit, and enabl…  -  by @ArthurDarkstone in https://github.com/vueuse/vueuse/issues/4965 <samp>(8ac73)</samp>
    • useMagicKeys: Clearing of other keys after releasing alt  -  by @NoiseFan in https://github.com/vueuse/vueuse/issues/5037 <samp>(3f113)</samp>
        View changes on GitHub
    Open source →
  9. 14.0.0-alpha.212 Sept 2025pre-release
    Release notes

       🚨 Breaking Changes

       🚀 Features

    • refManualReset: New function  -  by @phk422, Robin, @ilyaliao and Anthony Fu in https://github.com/vueuse/vueuse/issues/4644 <samp>(81bb3)</samp>

       🐞 Bug Fixes

    • integrations: Use relative import in component.ts  -  by @9romise in https://github.com/vueuse/vueuse/issues/5025 <samp>(d5bcd)</samp>
        View changes on GitHub
    Open source →
  10. 14.0.0-alpha.11 Sept 2025pre-release
    Release notes

       🚨 Breaking Changes

    • Migrate to tsdown, move dist files  -  by @9romise and Anthony Fu in https://github.com/vueuse/vueuse/issues/5004 <samp>(a2e2c)</samp>
    • computedAsync: Default to flush: sync  -  by @ferferga in https://github.com/vueuse/vueuse/issues/4752 <samp>(573bf)</samp>
    • useSwipe: Remove isPassiveEventSupported  -  by @pkc918 in https://github.com/vueuse/vueuse/issues/4886 <samp>(620a9)</samp>
        View changes on GitHub
    Open source →
  11. 14.0.0-alpha.01 Sept 2025pre-release
    Release notes

       🚨 Breaking Changes

    • components: Refactor components and make them consistent  -  by @ilyaliao in https://github.com/vueuse/vueuse/issues/4912 <samp>(8c521)</samp>
    • useThrottleFn: Align with traditional throttle behavior  -  by @IceMooncake and @ilyaliao in https://github.com/vueuse/vueuse/issues/4923 <samp>(cefd2)</samp>

       🚀 Features

    • onLongPress: Allow function as value in delay  -  by @keeplearning66 in https://github.com/vueuse/vueuse/issues/4979 <samp>(415f3)</samp>
    • useAsyncState: Allow initial value to be a ref  -  by @43081j in https://github.com/vueuse/vueuse/issues/4992 <samp>(e38e8)</samp>

       🐞 Bug Fixes

    • types: Update type casting for watch functions to use WatchSource<T>  -  by @ArthurDarkstone in https://github.com/vueuse/vueuse/issues/4966 <samp>(00a72)</samp>
    • useUrlSearchParams: Restore proper history and navigation behavior  -  by @yosong-github and @ilyaliao in https://github.com/vueuse/vueuse/issues/4969 <samp>(1cff4)</samp>
        View changes on GitHub
    Open source →
  12. 13.9.01 Sept 2025
    Release notes

       🚀 Features

    • onLongPress: Allow function as value in delay  -  by @keeplearning66 in https://github.com/vueuse/vueuse/issues/4979 <samp>(415f3)</samp>
    • useAsyncState: Allow initial value to be a ref  -  by @43081j in https://github.com/vueuse/vueuse/issues/4992 <samp>(e38e8)</samp>

       🐞 Bug Fixes

    • types: Update type casting for watch functions to use WatchSource<T>  -  by @ArthurDarkstone in https://github.com/vueuse/vueuse/issues/4966 <samp>(00a72)</samp>
    • useUrlSearchParams: Restore proper history and navigation behavior  -  by @yosong-github and @ilyaliao in https://github.com/vueuse/vueuse/issues/4969 <samp>(1cff4)</samp>
        View changes on GitHub
    Open source →
  13. 13.8.027 Aug 2025
    Release notes

       🚀 Features

    • useEventSource: Add serializer  -  by @imddc and @ilyaliao in https://github.com/vueuse/vueuse/issues/4953 <samp>(64651)</samp>

       🏎 Performance

    • docs: Replace twoslash with own function for comparing js snippet  -  by @serkodev in https://github.com/vueuse/vueuse/issues/4977 <samp>(909fd)</samp>
    • usePointer: Use shallowRef for better performance  -  by @broBinChen and xiaobin in https://github.com/vueuse/vueuse/issues/4980 <samp>(ce09e)</samp>
    • usePreferredLanguages: Use shallowRef for better performance  -  by @ilyaliao in https://github.com/vueuse/vueuse/issues/4973 <samp>(361c8)</samp>
        View changes on GitHub
    Open source →
  14. 13.7.018 Aug 2025
    Release notes

       🚨 Breaking Changes

    • useAsyncState: Set globalThis.reportError as default onError  -  by @kalu5 in https://github.com/vueuse/vueuse/issues/4951 <samp>(f6e88)</samp>

       🚀 Features

    • computedAsync: Use globalThis.reportError as default onError  -  by @babu-ch in https://github.com/vueuse/vueuse/issues/4943 <samp>(226a2)</samp>
    • useClipboardItems: Expose read()  -  by @OrbisK in https://github.com/vueuse/vueuse/issues/4954 <samp>(d03b2)</samp>
    • useDevicePixelRatio: Improve types  -  by @doyuli in https://github.com/vueuse/vueuse/issues/4927 <samp>(1b3d4)</samp>
    • useSpeechSynthesisOptions: Add option onBoundary  -  by @pkc918 in https://github.com/vueuse/vueuse/issues/4960 <samp>(c0dca)</samp>
    • useTimeAgoIntl: Add useTimaAgoIntl  -  by @northword and Anthony Fu in https://github.com/vueuse/vueuse/issues/4821 <samp>(81815)</samp>

       🐞 Bug Fixes

    • ci: Avoid duplicate nr update execution in docs:build  -  by @serkodev in https://github.com/vueuse/vueuse/issues/4925 <samp>(a73ee)</samp>
    • useAnimate: Respect immediate: false with conditionally rendered elements  -  by @curtgrimes in https://github.com/vueuse/vueuse/issues/4947 <samp>(90c7f)</samp>
    • useGamepad: Correct type assertion for vibrationActuator  -  by @ArthurDarkstone in https://github.com/vueuse/vueuse/issues/4964 <samp>(c5277)</samp>
    • useStorage: Make sure to always read data if new value is undefined  -  by @OrbisK in https://github.com/vueuse/vueuse/issues/4957 <samp>(22116)</samp>

       🏎 Performance

    • twoslash: Optimize twoslash cache  -  by @doyuli in https://github.com/vueuse/vueuse/issues/4939 <samp>(93064)</samp>
    • useMutationObserver: Watch ref directly  -  by @VividLemon in https://github.com/vueuse/vueuse/issues/4940 <samp>(01cd9)</samp>
        View changes on GitHub
    Open source →
  15. 13.6.028 Jul 2025
    Release notes

       🚀 Features

    • Mark templateRef as deprecated  -  by @ilyaliao in https://github.com/vueuse/vueuse/issues/4894 <samp>(0271e)</samp>
    • useFileDialog: Add MaybRef to multiple, accept, capture, reset, and directory  -  by @hunterwilhelm, Anthony Fu and @antfu in https://github.com/vueuse/vueuse/issues/4813 <samp>(a44bd)</samp>
    • useFocusTrap: Expose updateContainerElements for dynamic contai…  -  by @PeikyLiu and @ilyaliao in https://github.com/vueuse/vueuse/issues/4849 <samp>(3d5e5)</samp>
    • useIDBKeyval: Add options.serializer  -  by @matthewjumpsoffbuildings, @OrbisK and @43081j in https://github.com/vueuse/vueuse/issues/4781 <samp>(bb831)</samp>
    • useStorageAsync: Add onReady option and Promise return  -  by @asika32764, Fernando Fernández, @OrbisK and Anthony Fu in https://github.com/vueuse/vueuse/issues/4158 <samp>(3a2df)</samp>
    • useTransition: Support custom window  -  by @byronogis and Anthony Fu in https://github.com/vueuse/vueuse/issues/4850 <samp>(a75f4)</samp>

       🐞 Bug Fixes

    • onClickOutside: The order of overload signatures  -  by @whiteyebrw, @ilyaliao and Anthony Fu in https://github.com/vueuse/vueuse/issues/4839 <samp>(d5812)</samp>
    • types: Use Vue's native MaybeRef and MaybeRefOrGetter instead  -  by @RYGRIT in https://github.com/vueuse/vueuse/issues/4913 <samp>(2d179)</samp>
    • useDraggable: Add capture prop to component  -  by @wgh970312 in https://github.com/vueuse/vueuse/issues/4911 <samp>(547f8)</samp>
    • useMagicKeys: Prevent incorrect clearing of other keys after releasing shift  -  by @keeplearning66 in https://github.com/vueuse/vueuse/issues/4916 <samp>(d7f28)</samp>
    • useMouseInElement: Correctly update elementX and elementY  -  by @cszhjh and @ilyaliao in https://github.com/vueuse/vueuse/issues/4846 <samp>(cf02b)</samp>
    • useVirtualList: Resolve invalid watch source  -  by @cszhjh and @OrbisK in https://github.com/vueuse/vueuse/issues/4857 <samp>(d2381)</samp>
        View changes on GitHub
    Open source →
  16. 13.5.02 Jul 2025
    Release notes

       🚀 Features

    • useSpeechSynthesis: Add reactivity for volume  -  by @whiteyebrw in https://github.com/vueuse/vueuse/issues/4837 <samp>(4d125)</samp>

       🐞 Bug Fixes

    • useCookie: Update universal-cookie range to ^7 || ^8 #4834
        View changes on GitHub
    Open source →
  17. 13.4.019 Jun 2025
    Release notes

       🚀 Features

    • shared: Introduce TimerHandle for setTimeout type  -  by @ilyaliao in https://github.com/vueuse/vueuse/issues/4801 <samp>(319d8)</samp>
    • useAsyncState: Add executeImmediate with the same type as the promise fn  -  by @davidglezz in https://github.com/vueuse/vueuse/issues/4716 <samp>(82740)</samp>
    • useEventSource: Added lastEventId for named events  -  by @whiteyebrw in https://github.com/vueuse/vueuse/issues/4791 <samp>(f6f0b)</samp>
    • useFetch: Support for custom abort reason  -  by @doyuli in https://github.com/vueuse/vueuse/issues/4820 <samp>(44c0b)</samp>
    • useRefHistory: Add shouldCommit  -  by @JonathanSchndr, Anthony Fu and Robin in https://github.com/vueuse/vueuse/issues/4471 <samp>(18acf)</samp>
    • useUrlSearchParams: Add a stringify option for users to provide stringify logic  -  by @mingXta, Robin and Anthony Fu in https://github.com/vueuse/vueuse/issues/4773 <samp>(6a523)</samp>

       🐞 Bug Fixes

    • computedWithControl: Allow deeply watching source  -  by @MetRonnie and Anthony Fu in https://github.com/vueuse/vueuse/issues/4786 <samp>(ffc1a)</samp>
    • useDevicesList: Check for device availability before requesting permissions  -  by @ilyaliao in https://github.com/vueuse/vueuse/issues/4818 <samp>(c424f)</samp>
    • useEventListener: Improve types  -  by @ArthurDarkstone, liliang18 and @Alfred-Skyblue in https://github.com/vueuse/vueuse/issues/4787 <samp>(6f565)</samp>
    • useIdle: Changed the reset call when the initial value is true  -  by @whiteyebrw in https://github.com/vueuse/vueuse/issues/4800 <samp>(c6469)</samp>
    • useMouseInElement: Fixing the issue where target element updates were not considered.  -  by @Codfisher and bgm.cod in https://github.com/vueuse/vueuse/issues/4782 <samp>(04af9)</samp>
    • useScreenSafeArea: Сhanged initial value update  -  by @whiteyebrw in https://github.com/vueuse/vueuse/issues/4789 <samp>(ae573)</samp>
    • useScriptTag: Support passing nonce  -  by @1-dilikelei and 董梁玮 in https://github.com/vueuse/vueuse/issues/4753 <samp>(57370)</samp>
    • useScroll: Use mutationObserver to update arrivedState when the DOM is changed  -  by @andylou0102, AndyLuo, Robin and Anthony Fu in https://github.com/vueuse/vueuse/issues/4433 <samp>(135d5)</samp>
    • watchIgnorable: Add and export types  -  by @ArthurDarkstone, liliang18 and Robin in https://github.com/vueuse/vueuse/issues/4809 <samp>(0e10e)</samp>

       🏎 Performance

    • computedWithControl: Optimize with shallowRef  -  by @broBinChen and binge_c-admin in https://github.com/vueuse/vueuse/issues/4826 <samp>(2c91a)</samp>
        View changes on GitHub
    Open source →
  18. 13.3.027 May 2025
    Release notes

       🚀 Features

    • useNow: Expose immediate option  -  by @scottbedard in https://github.com/vueuse/vueuse/issues/4768 <samp>(44660)</samp>

       🐞 Bug Fixes

    • asyncComputed: Fix types for AsyncComputedOptions  -  by @antfu <samp>(217cc)</samp>
    • useFetch: Use globalThis.fetch when defaultWindow.fetch not exist  -  by @Groupguanfang, Naily and @OrbisK in https://github.com/vueuse/vueuse/issues/4765 <samp>(bf354)</samp>
    • useSortable: Fix type misalignment  -  by @michaelcozzolino in https://github.com/vueuse/vueuse/issues/4760 <samp>(16692)</samp>
        View changes on GitHub
    Open source →
  19. 13.2.014 May 2025
    Release notes

       🚀 Features

    • computedAsync: Add option to control watcher's flush timing  -  by @ferferga in https://github.com/vueuse/vueuse/issues/4746 <samp>(b1bc8)</samp>
    • useFileDialog: Allow custom input element for file dialog  -  by @ishakhorski in https://github.com/vueuse/vueuse/issues/4679 <samp>(0ea16)</samp>
    • useScroll: Add missing measure documentation  -  by @Matkolit and Mateusz Kołodziej in https://github.com/vueuse/vueuse/issues/4727 <samp>(dd98a)</samp>
    • useStyleTag: Support passing nonce  -  by @1-dilikelei and 董梁玮 in https://github.com/vueuse/vueuse/issues/4749 <samp>(fa2c0)</samp>
    • watchOnce: Use vue's native once behaviour  -  by @ferferga in https://github.com/vueuse/vueuse/issues/4750 <samp>(08f7d)</samp>

       🐞 Bug Fixes

    • Allow vertical scroll in usePointerSwipe  -  by @2nofa11 in https://github.com/vueuse/vueuse/issues/4637 and https://github.com/vueuse/vueuse/issues/4720 <samp>(d3ed6)</samp>
    • Always mount listeners in useStorage  -  by @43081j in https://github.com/vueuse/vueuse/issues/4730 <samp>(65a99)</samp>
    • UseArrayFindReturn: Missing template type  -  by @michaelcozzolino in https://github.com/vueuse/vueuse/issues/4715 <samp>(43903)</samp>
    • computedAsync: Return ComputedRef<T> type when lazy: true  -  by @ferferga in https://github.com/vueuse/vueuse/issues/4751 <samp>(b1718)</samp>
    • docs: Grammar in /packages/nuxt/README.md  -  by @neeko-cat in https://github.com/vueuse/vueuse/issues/4701 <samp>(44b40)</samp>
    • fromEvent: Fix type error of element reference  -  by @ywenhao and @antfu in https://github.com/vueuse/vueuse/issues/4728 <samp>(94fea)</samp>
    • onClickOutside: Workaround for iOS  -  by @ferferga in https://github.com/vueuse/vueuse/issues/4735 <samp>(1c60c)</samp>
    • useElementSize: Component type warning  -  by @menghany in https://github.com/vueuse/vueuse/issues/4722 <samp>(9889f)</samp>
    • useEventSource: Add missing data generic  -  by @OrbisK in https://github.com/vueuse/vueuse/issues/4726 <samp>(a969e)</samp>
    • useFullscreen: Get the correct initial state while mounted  -  by @ben-lau and liubaobin in https://github.com/vueuse/vueuse/issues/4745 <samp>(09cbd)</samp>
    • useMagicKeys: Correctly clear current pressed keys when releasing Shift  -  by @Kedlingar and Skstud5 in https://github.com/vueuse/vueuse/issues/4731 <samp>(ab7ac)</samp>
        View changes on GitHub
    Open source →
  20. 13.1.08 Apr 2025
    Release notes

       🚀 Features

    • shared: Ensure return types exists  -  by @OrbisK in https://github.com/vueuse/vueuse/issues/4659 <samp>(c1d6e)</samp>
    • useSortable: Add possibility to use it with Component ref  -  by @michaelcozzolino in https://github.com/vueuse/vueuse/issues/4684 <samp>(15917)</samp>

       🐞 Bug Fixes

    • docs: Blog moved to different domain  -  by @th1m0 in https://github.com/vueuse/vueuse/issues/4663 <samp>(72c9a)</samp>
    • nuxt: Don't require @vueuse/core installed at root  -  by @danielroe in https://github.com/vueuse/vueuse/issues/4698 <samp>(17a46)</samp>
    • tryOnMounted: Pass target to getLifeCycleTarget  -  by @Eazash in https://github.com/vueuse/vueuse/issues/4685 <samp>(16551)</samp>
    • useDropZone: Allow passing document as target  -  by @osbre in https://github.com/vueuse/vueuse/issues/4681 <samp>(21fa6)</samp>
        View changes on GitHub
    Open source →
  21. 13.0.010 Mar 2025
    Release notes

       🚨 Breaking Changes

    • Drop CJS build, now it's ESM-only  -  by @antfu in https://github.com/vueuse/vueuse/issues/4581 <samp>(5e046)</samp>
        View changes on GitHub
    Open source →
  22. 13.0.0-beta.25 Mar 2025pre-release
    Release notes

       🚨 Breaking Changes

        View changes on GitHub
    Open source →
  23. 13.0.0-beta.15 Mar 2025pre-release
    Release notes

       🚨 Breaking Changes

        View changes on GitHub
    Open source →
  24. 12.8.25 Mar 2025
    Release notes

       🐞 Bug Fixes

        View changes on GitHub
    Open source →
  25. 12.8.15 Mar 2025
    Release notes

       🐞 Bug Fixes

    • useEventSource: Remove readonly to not be breaking  -  by @OrbisK in https://github.com/vueuse/vueuse/issues/4645 <samp>(79fcb)</samp>
        View changes on GitHub
    Open source →
  26. 12.8.05 Mar 2025
    Release notes

       🚀 Features

    • nuxt: Support wider Nuxt range  -  by @antfu <samp>(c478e)</samp>
    • types: Deprecate MaybeRef and MaybeRefOrGetter in favor of Vue's native  -  by @ilyaliao and @antfu in https://github.com/vueuse/vueuse/issues/4636 <samp>(7432f)</samp>
    • useCached: Add options.deepRefs  -  by @OrbisK and @antfu in https://github.com/vueuse/vueuse/issues/4591 <samp>(9afee)</samp>
    • useWebSocket: Pass the retried to the autoReconnect.retries  -  by @9romise and @OrbisK in https://github.com/vueuse/vueuse/issues/4604 <samp>(73e6d)</samp>

       🐞 Bug Fixes

    • onStartTyping: Incorrect accepted valid characters  -  by @Bernard-Borg in https://github.com/vueuse/vueuse/issues/4616 <samp>(58a3b)</samp>
    • useAnimate: Correct condition for updating keyframes  -  by @Mrlilili and liyan1 in https://github.com/vueuse/vueuse/issues/4619 <samp>(e8665)</samp>
    • useClipboard: Unhandled rejection on read permission prompt  -  by @Vitalis11 in https://github.com/vueuse/vueuse/issues/4615 <samp>(a54c4)</samp>
    • useCssVar: Update variable when initial  -  by @ilyaliao in https://github.com/vueuse/vueuse/issues/4641 <samp>(d680f)</samp>
    • useDeviceList: AudioInputs doesn't update if camera permission is granted  -  by @Nikitatopodin and Никита Быковский in https://github.com/vueuse/vueuse/issues/4559 <samp>(f9685)</samp>
    • useScroll: Handle negative scroll values  -  by @ilyaliao and eavlee in https://github.com/vueuse/vueuse/issues/4613 <samp>(4b7ab)</samp>
    • useWebSocket: Don't call close() on pongTimeout if connection al…  -  by @Azurency in https://github.com/vueuse/vueuse/issues/4608 <samp>(9ba07)</samp>
        View changes on GitHub
    Open source →
  27. 12.7.015 Feb 2025
    Release notes

       🚀 Features

    • useRafFn: Add once option  -  by @btea in https://github.com/vueuse/vueuse/issues/4583 <samp>(3041e)</samp>

       🐞 Bug Fixes

    • useFetch: Partial overwrite when {combination: 'overwrite'}  -  by @pkc918 and @antfu in https://github.com/vueuse/vueuse/issues/4430 <samp>(3ca0d)</samp>
    • useTextareaAutosize: Improve resize handling with requestAnimationFrame  -  by @ilyaliao, Robin and @antfu in https://github.com/vueuse/vueuse/issues/4557 <samp>(e1a7e)</samp>
        View changes on GitHub
    Open source →
  28. 12.6.114 Feb 2025
    Release notes

    No significant changes

        View changes on GitHub
    Open source →
  29. 12.6.014 Feb 2025
    Release notes

       🚀 Features

    • createReusableTemplate: Explicit props  -  by @antfu in https://github.com/vueuse/vueuse/issues/4535 <samp>(18031)</samp>
    • onClickOutside: Add controls  -  by @sibbng and @antfu in https://github.com/vueuse/vueuse/issues/4537 <samp>(ab116)</samp>
    • useDateFormat: Add z...zzzz for timezone information  -  by @OrbisK in https://github.com/vueuse/vueuse/issues/4553 <samp>(cd6d7)</samp>
    • useElementVisibility: Add once options  -  by @ilyaliao in https://github.com/vueuse/vueuse/issues/4577 <samp>(f2f94)</samp>
    • useTimtoutFn,useTimeoutPoll: Align behavior  -  by @ilyaliao in https://github.com/vueuse/vueuse/issues/4543 <samp>(64c53)</samp>
    • watchPausable: Add options.initialState to control the initial active value  -  by @OrbisK in https://github.com/vueuse/vueuse/issues/4533 <samp>(ceb56)</samp>

       🐞 Bug Fixes

    • createEventHook: Type check for multiple arguments  -  by @isimehmeti and @ilyaliao in https://github.com/vueuse/vueuse/issues/4555 <samp>(636b8)</samp>
    • nuxt: Check if packages exist in any layer  -  by @dgrayvold in https://github.com/vueuse/vueuse/issues/4571 <samp>(45e5c)</samp>
    • reactiveComputed: Computed fn should be ComputedGetter  -  by @OrbisK in https://github.com/vueuse/vueuse/issues/4528 <samp>(bea31)</samp>
    • useAnimate: Clear animate when element is gone  -  by @babu-ch in https://github.com/vueuse/vueuse/issues/4579 <samp>(1a934)</samp>
    • useCountdown: start() should accept a custom initial value  -  by @ralacerda in https://github.com/vueuse/vueuse/issues/4554 <samp>(93591)</samp>
    • useCssVar: New Behavior  -  by @ilyaliao and OrbisK in https://github.com/vueuse/vueuse/issues/4500 <samp>(d5dd8)</samp>
    • useMouse: Check for MouseEvent instead of Touch to work with FF  -  by @OrbisK and @antfu in https://github.com/vueuse/vueuse/issues/4457 <samp>(ce9e5)</samp>
    • useSpeechRecognition: Improve start and stop method behavior  -  by @ilyaliao in https://github.com/vueuse/vueuse/issues/4565 <samp>(4f104)</samp>
        View changes on GitHub
    Open source →
  30. 12.5.022 Jan 2025
    Release notes

       🚀 Features

    • More passive event handlers  -  by @ferferga in https://github.com/vueuse/vueuse/issues/4484 <samp>(eddbf)</samp>
    • Use useEventListener where it was not being used  -  by @ferferga in https://github.com/vueuse/vueuse/issues/4479 <samp>(c6c6e)</samp>
    • useClipboard: Should fall back to legacy clipboard when read/write fails  -  by @OrbisK in https://github.com/vueuse/vueuse/issues/4512 <samp>(01acd)</samp>
    • useCountdown: New function  -  by @rtugeek, @huang-julien, Anthony Fu and @antfu in https://github.com/vueuse/vueuse/issues/4125 <samp>(69ced)</samp>
    • useEventListener: Make all parameters arrayable and reactive  -  by @ferferga in https://github.com/vueuse/vueuse/issues/4486 <samp>(caf08)</samp>
    • useFetch: Add parameters to the afterFetch and onFetchError  -  by @tolking and Anthony Fu in https://github.com/vueuse/vueuse/issues/4499 <samp>(98a83)</samp>
    • useFileDialog: Add initialFiles option  -  by @EvgenyWas in https://github.com/vueuse/vueuse/issues/4509 <samp>(8a8d6)</samp>

       🐞 Bug Fixes

    • debounceFilter: Invoke on maxWait with the latest invoker  -  by @43081j and @OrbisK in https://github.com/vueuse/vueuse/issues/4497 <samp>(48e0a)</samp>
    • useMagicKeys: Fix key order issue on first use  -  by @babu-ch in https://github.com/vueuse/vueuse/issues/4505 <samp>(b6947)</samp>
    • useVirtualList: Allow readonly arrays as input  -  by @RebeccaStevens in https://github.com/vueuse/vueuse/issues/4504 <samp>(f3cc7)</samp>
        View changes on GitHub
    Open source →
  31. 12.4.010 Jan 2025
    Release notes

       🚀 Features

    • Use passive event handlers everywhere is possible  -  by @ferferga and @antfu in https://github.com/vueuse/vueuse/issues/4477 <samp>(dd316)</samp>
    • useCloned: Return isModified  -  by @pkc918 and @antfu in https://github.com/vueuse/vueuse/issues/4470 <samp>(6018c)</samp>
    • useStorage: Make storage key reactive  -  by @EvgenyWas and @antfu in https://github.com/vueuse/vueuse/issues/4464 <samp>(eb679)</samp>

       🐞 Bug Fixes

    • useBluetooth: IsConnected state not changed when disconnected  -  by @ilyaliao, @antfu and @ferferga in https://github.com/vueuse/vueuse/issues/4460 <samp>(fcc6e)</samp>
        View changes on GitHub
    Open source →
  32. 12.3.02 Jan 2025
    Release notes

       🚀 Features

    • onElementRemoval: New function, refactor useActiveElement useElementHover  -  by @ben-lau and @antfu in https://github.com/vueuse/vueuse/issues/4410 <samp>(08cf5)</samp>
    • router: Support partial transform  -  by @alexchexes and @antfu in https://github.com/vueuse/vueuse/issues/4426 <samp>(bba3f)</samp>
    • toArray: New utility function  -  by @coderwhytop and @antfu in https://github.com/vueuse/vueuse/issues/4432 <samp>(021d0)</samp>
    • toValue: Deprecate toValue from @vueuse/shared in favor of Vue's native  -  by @antfu <samp>(59f75)</samp>
    • useElementBounding: Added directive for vElementBounding  -  by @pkc918 in https://github.com/vueuse/vueuse/issues/4436 <samp>(67a9c)</samp>
    • useMouseInElement: Added directive for vMouseInElement  -  by @pkc918 in https://github.com/vueuse/vueuse/issues/4438 <samp>(34be5)</samp>
    • useMousePressed: Add onPressed and onReleased as options  -  by @OrbisK in https://github.com/vueuse/vueuse/issues/4425 <samp>(a123a)</samp>
    • useToNumber: method support custom function  -  by @btea and @antfu in https://github.com/vueuse/vueuse/issues/4441 <samp>(635bb)</samp>
    • useWindowScroll: Use useScroll under the hood  -  by @OrbisK and @antfu in https://github.com/vueuse/vueuse/issues/4424 <samp>(a033e)</samp>

       🐞 Bug Fixes

    • useAxios: Narrow type of data when initialValue is provided  -  by @huang-julien and @antfu in https://github.com/vueuse/vueuse/issues/4419 <samp>(8502f)</samp>
    • useClipboard,useClipboardItems: Avoid running "copied" timeout during initialization  -  by @Ingramz in https://github.com/vueuse/vueuse/issues/4299 <samp>(6860f)</samp>
    • useDropZone: Validate all file types individually when dropping multiple files  -  by @LouisMazel in https://github.com/vueuse/vueuse/issues/4325 <samp>(b01cf)</samp>
    • useFocusWithin: Correctly track the state when switching the focus of elements in the same container  -  by @ben-lau in https://github.com/vueuse/vueuse/issues/4394 <samp>(3ca0d)</samp>
    • useRouteQuery: Differentiate undefined and null when writing value  -  by @aa-ndrej and @antfu in https://github.com/vueuse/vueuse/issues/4382 <samp>(0cc45)</samp>
    • useSpeechRecognition: Execute 'start' when not ended  -  by @byronogis and @antfu in https://github.com/vueuse/vueuse/issues/4119 <samp>(890ab)</samp>
    • useStorageAsync: Correct initialization when initialValue is getter  -  by @Mini-ghost and @antfu in https://github.com/vueuse/vueuse/issues/4452 <samp>(e6a17)</samp>
    • useTimeoutPoll: immediate default value should be true  -  by @phk422 and @antfu in https://github.com/vueuse/vueuse/issues/4232 <samp>(0450d)</samp>
    • useTimeoutPoll: Only start by default at client  -  by @antfu <samp>(a5fb0)</samp>
        View changes on GitHub
    Open source →
  33. 12.2.023 Dec 2024
    Release notes

       🚀 Features

    • useArrayDifference: New symmetric option  -  by @wangliangxin, wangliangxin3 and @antfu in https://github.com/vueuse/vueuse/issues/4146 <samp>(46fdc)</samp>
    • useEventSource: New autoConnect option to align with useWebSocket  -  by @ferferga and @antfu in https://github.com/vueuse/vueuse/issues/4204 <samp>(230f8)</samp>
    • useImage: Support more native option  -  by @btea and @antfu in https://github.com/vueuse/vueuse/issues/4173 <samp>(4ca72)</samp>
    • usePreferredReducedTransparency: Add new function  -  by @huiliangShen and @antfu in https://github.com/vueuse/vueuse/issues/4201 <samp>(34cd7)</samp>

       🐞 Bug Fixes

    • useWebSocket: Clear retryTimer when connected  -  by @ilyaliao and @antfu in https://github.com/vueuse/vueuse/issues/4383 <samp>(ffa00)</samp>
        View changes on GitHub
    Open source →
  34. 12.2.0-beta.423 Dec 2024pre-release
    Release notes

    No significant changes

        View changes on GitHub
    Open source →
  35. 12.2.0-beta.323 Dec 2024pre-release
    Release notes

    No significant changes

        View changes on GitHub
    Open source →
  36. 12.1.022 Dec 2024
    Release notes

       🚀 Features

    • createEventHook: Add clear function  -  by @ilyaliao in https://github.com/vueuse/vueuse/issues/4378 <samp>(40265)</samp>
    • useBase64: Add options for Data URL output control  -  by @ilyaliao and Jelf in https://github.com/vueuse/vueuse/issues/4316 <samp>(4b4bd)</samp>
    • useDeviceMotion: Add permission controls, improve destructure  -  by @thefeymesaleng and @antfu in https://github.com/vueuse/vueuse/issues/4127 <samp>(cf729)</samp>
    • useElementVisibility: Add rootMargin option  -  by @dritter and @antfu in https://github.com/vueuse/vueuse/issues/4100 <samp>(3a928)</samp>
    • useMediaControls: Add 'media' option to define media query for resources  -  by @aaronLejeune in https://github.com/vueuse/vueuse/issues/4344 <samp>(209de)</samp>
    • useRafFn: Allow framerate to be a reactive value  -  by @OrbisK and Anthony Fu in https://github.com/vueuse/vueuse/issues/4409 <samp>(4759f)</samp>
    • useSSRWidth: Add optional support for SSR in useMediaQuery and useBreakpoints  -  by @Tofandel, Anthony Fu and @antfu in https://github.com/vueuse/vueuse/issues/4317 <samp>(55965)</samp>
    • useUrlSearchParams: Add writeMode options  -  by @ishakhorski, Ivan Shakhorski and @antfu in https://github.com/vueuse/vueuse/issues/4392 <samp>(2c972)</samp>
    • useWebSocket: Introduce autoConnect options to control auto connections on url changes  -  by @ilyaliao and @antfu in https://github.com/vueuse/vueuse/issues/4417 <samp>(05e75)</samp>
    • useWebsocket: Support ref or getter as message  -  by @SnowGuest, Anthony Fu and @antfu in https://github.com/vueuse/vueuse/issues/4116 <samp>(a72c0)</samp>
    • useWindowSize: Add type: visual option that leverage visualViewport  -  by @huiliangShen and @antfu in https://github.com/vueuse/vueuse/issues/4395 <samp>(e78ef)</samp>

       🐞 Bug Fixes

    • injectLocal: Allow inject to app context  -  by @antfu <samp>(b08a9)</samp>
    • useAsyncState: Use ShallowRef instead of Ref type  -  by @joris-gallot and Anthony Fu in https://github.com/vueuse/vueuse/issues/4294 <samp>(4d0a7)</samp>
    • useDropZone: Update type to allow readonly array param  -  by @briankchan in https://github.com/vueuse/vueuse/issues/4319 <samp>(df363)</samp>
    • useFetch: Handle empty payload  -  by @ilyaliao in https://github.com/vueuse/vueuse/issues/4366 <samp>(8a89d)</samp>
    • useMediaQuery: The return value should be computed  -  by @alexzhang1030 and @antfu in https://github.com/vueuse/vueuse/issues/4403 <samp>(3af75)</samp>
    • useRouteParams,useRouteQuery: Set route param/query to undefined when defaultValue is ref or getter  -  by @vojvodics and Anthony Fu in https://github.com/vueuse/vueuse/issues/3977 <samp>(23fdb)</samp>
    • useScroll: To properly report arriveState for elastic scroll  -  by @719media and Anthony Fu in https://github.com/vueuse/vueuse/issues/4133 <samp>(90ff4)</samp>
    • useTextareaAutosize: Make input required  -  by @axuj, @antfu and Anthony Fu in https://github.com/vueuse/vueuse/issues/4129 <samp>(25ed2)</samp>
    • useWebNotification: Prevent notifications when checking for support  -  by @9romise in https://github.com/vueuse/vueuse/issues/4019 <samp>(01f92)</samp>
    • useWebSocket: Close socket connection inside WebWorker fix  -  by @catz in https://github.com/vueuse/vueuse/issues/4229 <samp>(ece6a)</samp>
        View changes on GitHub
    Open source →
  37. 12.0.027 Nov 2024
    Release notes

       🚨 Breaking Changes

    • Drop Vue 2 support, optimize bundles and clean up  -  by @antfu in https://github.com/vueuse/vueuse/issues/4349 <samp>(0a9ed)</samp>

    [!NOTE] To Vue 3 users, v12.0.0 is equivalent to v11.3.0 on behaviors, only to remove some Vue 2 specific handling and will be slightly lighter. We expect future development to contain on v12.x and forward, and only backport if there are security issues. This means that VueUse would no longer be active on Vue 2 support.

        View changes on GitHub
    Open source →
  38. 12.0.0-beta.121 Nov 2024pre-release
    Release notes

       🚨 Breaking Changes

    • Drop Vue 2 support, optimize bundles and clean up  -  by @antfu in https://github.com/vueuse/vueuse/issues/4349 <samp>(0a9ed)</samp>
        View changes on GitHub
    Open source →
  39. 11.3.021 Nov 2024
    Release notes

       🚀 Features

    • OnClickOutside: Support component with fragments  -  by @ilyaliao in https://github.com/vueuse/vueuse/issues/4313 <samp>(fe322)</samp>
    • router: Transform get / set  -  by @Akryum, Anthony Fu and @antfu in https://github.com/vueuse/vueuse/issues/4326 <samp>(65aa0)</samp>
    • useFetch: Infer 'json' type for array payloads  -  by @WingSMC, Gergely Dremak and @antfu in https://github.com/vueuse/vueuse/issues/4329 <samp>(3d29c)</samp>

       🐞 Bug Fixes

    • useFetch: Ensure single slash  -  by @mrchar and @antfu in https://github.com/vueuse/vueuse/issues/4296 <samp>(3de68)</samp>
    • useMouse: Record the previous scroll value  -  by @pkc918 and Anthony Fu in https://github.com/vueuse/vueuse/issues/4244 <samp>(e8d11)</samp>
    • useMouse: Correct spelling error  -  by @pkc918 in https://github.com/vueuse/vueuse/issues/4348 <samp>(cceeb)</samp>
    • useRouteParams, useRouteQuery: Effect triggers twice with object getter as watch source  -  by @jack-allocate and Anthony Fu in https://github.com/vueuse/vueuse/issues/4283 <samp>(44772)</samp>
    • useSortable: Wrong order of elements  -  by @ilyaliao in https://github.com/vueuse/vueuse/issues/4332 <samp>(9e78e)</samp>
    • useSwipe: Allow vertical scrolling during swipe  -  by @ilyaliao in https://github.com/vueuse/vueuse/issues/4323 <samp>(1bb54)</samp>
    • useUrlSearchParams: hash mode missing location.search  -  by @Huodoo, 霍冬冬 and @antfu in https://github.com/vueuse/vueuse/issues/4340 <samp>(e77ca)</samp>
        View changes on GitHub
    Open source →
  40. 11.2.030 Oct 2024
    Release notes

       🚀 Features

    • useBreakpoints: Add breakpoints for ElementUI/ElementPlus  -  by @AAABingBing and Anthony Fu in https://github.com/vueuse/vueuse/issues/4238 <samp>(f71e5)</samp>
    • useMediaControls: Add playback error event  -  by @DarrenSG and Anthony Fu in https://github.com/vueuse/vueuse/issues/4253 <samp>(e1169)</samp>

       🐞 Bug Fixes

    • useArrayReduce: InitialValue can be a function  -  by @Mutter45 and Anthony Fu in https://github.com/vueuse/vueuse/issues/4243 <samp>(ae542)</samp>
    • useDevicesList: Handle NotAllowedError on reject/close  -  by @espensgr and Anthony Fu in https://github.com/vueuse/vueuse/issues/4246 <samp>(bf0f2)</samp>
    • useDropZone: Remove file kind restriction  -  by @jackcodetw in https://github.com/vueuse/vueuse/issues/4305 <samp>(1d661)</samp>
    • useIntervalFn: Prevent timer being set after pause is called in cb  -  by @laporchen and Anthony Fu in https://github.com/vueuse/vueuse/issues/4258 <samp>(59f8c)</samp>
    • useManualRefHistory: canUndo and canRedo typing to be computed ref  -  by @roydukkey and Anthony Fu in https://github.com/vueuse/vueuse/issues/4261 <samp>(b46d2)</samp>
    • useWebSocket: Autoreconnect when ws close  -  by @jackcodetw in https://github.com/vueuse/vueuse/issues/4314 <samp>(08412)</samp>
        View changes on GitHub
    Open source →
  41. 11.1.016 Sept 2024
    Release notes

       🚀 Features

    • useCurrentElement: Try to infer type from $el  -  by @KazariEX in https://github.com/vueuse/vueuse/issues/4202 <samp>(8e141)</samp>
    • useDropZone: Add multiple prop to control multi-file drop  -  by @danngossinga and Dan T. Ngossinga in https://github.com/vueuse/vueuse/issues/4227 <samp>(3b94d)</samp>
    • useFileDialog: Return onCancel handler  -  by @AndreyYolkin in https://github.com/vueuse/vueuse/issues/4184 <samp>(30452)</samp>

       🐞 Bug Fixes

    • computedAsync: Type signature  -  by @ferferga in https://github.com/vueuse/vueuse/issues/4207 <samp>(45b18)</samp>
    • onClickOutside: Make ignore accept reactive values  -  by @CernyMatej in https://github.com/vueuse/vueuse/issues/4211 <samp>(aa5e3)</samp>
    • onClickOutside: Improve cross-browser compatibility  -  by @Onion-L and @antfu in https://github.com/vueuse/vueuse/issues/4185 <samp>(9e598)</samp>
    • useArrayFilter: Match type to Array.prototype.filter  -  by @Jesse205 in https://github.com/vueuse/vueuse/issues/4175 <samp>(71fd1)</samp>
    • useDraggable: Draggable component not work with container  -  by @huiliangShen in https://github.com/vueuse/vueuse/issues/4192 <samp>(7f25b)</samp>
    • useFocusWithin: Make useFocusWhithin match the behavior of the :focus-within  -  by @ben-lau in https://github.com/vueuse/vueuse/issues/4134 <samp>(c5407)</samp>
    • useInfiniteScroll: Stop watch when unmounted  -  by @zyyv in https://github.com/vueuse/vueuse/issues/4110 <samp>(f30cc)</samp>
    • useIntersectionObserver: Add Document type for root  -  by @phk422 in https://github.com/vueuse/vueuse/issues/4210 <samp>(6b584)</samp>
    • useMouseInElement: Allow el to be instanceof Element  -  by @FRSgit in https://github.com/vueuse/vueuse/issues/4189 <samp>(4dcc2)</samp>
    • useNetwork: Return immutable values  -  by @rudnovd in https://github.com/vueuse/vueuse/issues/4187 <samp>(99179)</samp>
    • useResizeObserver: Update type  -  by @phk422 in https://github.com/vueuse/vueuse/issues/4218 <samp>(044dd)</samp>
        View changes on GitHub
    Open source →
  42. 11.0.324 Aug 2024
    Release notes

       🚀 Features

    • templateRef: Support specifying allowed keys via generic argument  -  by @zhiyuanzmj in https://github.com/vueuse/vueuse/issues/4162 <samp>(acce3)</samp>

       🐞 Bug Fixes

    • createSharedComposable: Handle the case where the return value of composable function is empty  -  by @XinXiaoIsMe in https://github.com/vueuse/vueuse/issues/4151 <samp>(a2441)</samp>
    • useCssVar: Replace getComputedStyle with direct style property access  -  by @babu-ch in https://github.com/vueuse/vueuse/issues/4166 <samp>(d0523)</samp>
    • useDropZone: Ensure files ref is updated even without onDrop callback  -  by @babu-ch in https://github.com/vueuse/vueuse/issues/4168 <samp>(1c849)</samp>
    • usePermission: State setting  -  by @ferferga in https://github.com/vueuse/vueuse/issues/4167 <samp>(2aaa1)</samp>
    • useWebSocket: Only reconnect if is the current ws socket  -  by @freakbite in https://github.com/vueuse/vueuse/issues/4161 <samp>(e0e99)</samp>
    • useWebSocket: Should reset retry count when connection is established  -  by @freakbite in https://github.com/vueuse/vueuse/issues/4164 <samp>(3c2fc)</samp>
        View changes on GitHub
    Open source →
  43. 11.0.119 Aug 2024
    Release notes

       🐞 Bug Fixes

    • usePermission: Fix memory leak  -  by @ferferga in https://github.com/vueuse/vueuse/issues/4157 <samp>(63a22)</samp>
    • useStorage: Sync within the same document  -  by @ferferga in https://github.com/vueuse/vueuse/issues/4152 <samp>(a9b49)</samp>
        View changes on GitHub
    Open source →
  44. 11.0.015 Aug 2024
    Release notes

       🚨 Breaking Changes

    • useChangeCase: Migrate to change-case@v5, closes #3457  -  by @wheatjs and @antfu in https://github.com/vueuse/vueuse/issues/3460 and https://github.com/vueuse/vueuse/issues/3457 <samp>(df343)</samp>
    • useFuse: Upgrade fuse.js to v7  -  by @antfu in https://github.com/vueuse/vueuse/issues/4036 <samp>(cb44c)</samp>
    • useIntersectionObserver: Update the threshold default to 0  -  by @Alfred-Skyblue in https://github.com/vueuse/vueuse/issues/4069 <samp>(13e36)</samp>
    • useJwt: Upgrade jwt-decode to v4  -  by @root5427 and @antfu in https://github.com/vueuse/vueuse/issues/3510 <samp>(9037d)</samp>

       🚀 Features

    • integrations: Bump drauu and universal-cookie major version  -  by @antfu <samp>(1c9ec)</samp>
    • useCssVars: Remove property on null/undefined  -  by @ferferga in https://github.com/vueuse/vueuse/issues/3821 <samp>(fe19c)</samp>
    • useDateFormat: Locales is now reactive  -  by @OrbisK and @antfu in https://github.com/vueuse/vueuse/issues/3907 <samp>(4a7a8)</samp>
    • useDraggable: Add buttons option  -  by @DrJonki and @antfu in https://github.com/vueuse/vueuse/issues/4084 <samp>(e9938)</samp>
    • useElementBounding: Add updateTiming option  -  by @DerZade and @antfu in https://github.com/vueuse/vueuse/issues/3869 <samp>(0fa17)</samp>
    • useElementHover: Add options to the directive  -  by @userquin and @antfu in https://github.com/vueuse/vueuse/issues/3897 <samp>(cf439)</samp>
    • useFocusTrap: Support multiple refs  -  by @Sma11X in https://github.com/vueuse/vueuse/issues/4022 <samp>(83c41)</samp>
    • useInfiniteScroll: Add a reset method  -  by @schelmo in https://github.com/vueuse/vueuse/issues/3892 <samp>(aefb6)</samp>
    • usePermission: Add local-fonts permission  -  by @seanmcbroom, @antfu and autofix-ci[bot] in https://github.com/vueuse/vueuse/issues/4098 <samp>(5f584)</samp>
    • useResizeObserver: Added vResizeObserver directive  -  by @pkc918 in https://github.com/vueuse/vueuse/issues/4008 <samp>(d4310)</samp>
    • useSpeechRecognition: Support maxAlternatives option  -  by @pkc918 in https://github.com/vueuse/vueuse/issues/4067 <samp>(9eda8)</samp>
    • useStorage: Conditionally use event based on the used storage backend  -  by @ferferga in https://github.com/vueuse/vueuse/issues/3822 <samp>(5a302)</samp>
    • useWebSocket: Allow different heartbeat response message  -  by @lavolpecheprogramma and @antfu in https://github.com/vueuse/vueuse/issues/3950 <samp>(adbe0)</samp>
    • useWindowSize: Add ability to get outer sizes of the window  -  by @khawarizmus and @antfu in https://github.com/vueuse/vueuse/issues/3999 <samp>(bfba3)</samp>

       🐞 Bug Fixes

    • computedWithControl: Allow optional oldValue parameter in computedWithControl getter  -  by @haoyun in https://github.com/vueuse/vueuse/issues/4132 <samp>(5725a)</samp>
    • isDefined: Moves most specific overload to the top  -  by @bjacobgordon-cy in https://github.com/vueuse/vueuse/issues/4141 <samp>(fd884)</samp>
    • until: Cleanup at next tick to avoid memory leak  -  by @Gianthard-cyh, @antfu and delaneyb in https://github.com/vueuse/vueuse/issues/4039 <samp>(8a023)</samp>
    • useChangeCase: Use the exported key for filter  -  by @thyngster, autofix-ci[bot] and @antfu in https://github.com/vueuse/vueuse/issues/4130 <samp>(5c598)</samp>
    • useColorMode, useDark: Fix full page reflows when calling useColorMode and useDark  -  by @jpleclerc, Jean-Philippe Leclerc and @antfu in https://github.com/vueuse/vueuse/issues/4001 <samp>(905b9)</samp>
    • useEventListener: Event target can be an empty ref/getter  -  by @floryst in https://github.com/vueuse/vueuse/issues/4014 <samp>(edab6)</samp>
    • useGamepad: Handle case where hapticActuators is not present  -  by @Aaron-zon in https://github.com/vueuse/vueuse/issues/4068 <samp>(0ca13)</samp>
    • useMouseInElement: el.getBoundingClientRect is not a function  -  by @loongzhu in https://github.com/vueuse/vueuse/issues/4056 <samp>(efe4d)</samp>
    • useMutationObserver: Stop watching before cleaning up  -  by @pimlie in https://github.com/vueuse/vueuse/issues/4037 <samp>(489a9)</samp>
    • useResizeObserver: Fix target is Ref Array  -  by @Alfred-Skyblue and @antfu in https://github.com/vueuse/vueuse/issues/4005 <samp>(1c124)</samp>
    • useRouteHash, useRouteParams, useRouteQuery: Fix effect triggering multiple times  -  by @aethr in https://github.com/vueuse/vueuse/issues/4113 <samp>(965bf)</samp>
    • useTextareaAutosize: Improve triggerResize triggering  -  by @Mutter45 and @antfu in https://github.com/vueuse/vueuse/issues/4074 <samp>(06c6f)</samp>
    • useWakeLock: Should delay wake lock request if document is hidden  -  by @KermanX in https://github.com/vueuse/vueuse/issues/4055 <samp>(5ca57)</samp>
    • watchDeep: Unify overload declaration for watch functions  -  by @KazariEX and @antfu in https://github.com/vueuse/vueuse/issues/4043 <samp>(0716d)</samp>

       🏎 Performance

    • useAnimate: Set sync false  -  by @JianJroh, @antfu and autofix-ci[bot] in https://github.com/vueuse/vueuse/issues/3916 <samp>(7b108)</samp>
        View changes on GitHub
    Open source →
  45. 11.0.0-beta.314 Aug 2024pre-release
    Release notes

       🚨 Breaking Changes

    • useChangeCase: Migrate to change-case@v5, closes #3457  -  by @wheatjs and @antfu in https://github.com/vueuse/vueuse/issues/3460 and https://github.com/vueuse/vueuse/issues/3457 <samp>(df343)</samp>
    • useFuse: Upgrade fuse.js to v7  -  by @antfu in https://github.com/vueuse/vueuse/issues/4036 <samp>(cb44c)</samp>
    • useIntersectionObserver: Update the threshold default to 0  -  by @Alfred-Skyblue in https://github.com/vueuse/vueuse/issues/4069 <samp>(13e36)</samp>
    • useJwt: Upgrade jwt-decode to v4  -  by @root5427 and @antfu in https://github.com/vueuse/vueuse/issues/3510 <samp>(9037d)</samp>

       🚀 Features

    • integrations: Bump drauu and universal-cookie major version  -  by @antfu <samp>(1c9ec)</samp>
    • useCssVars: Remove property on null/undefined  -  by @ferferga in https://github.com/vueuse/vueuse/issues/3821 <samp>(fe19c)</samp>
    • useDateFormat: Locales is now reactive  -  by @OrbisK and @antfu in https://github.com/vueuse/vueuse/issues/3907 <samp>(4a7a8)</samp>
    • useDraggable: Add buttons option  -  by @DrJonki and @antfu in https://github.com/vueuse/vueuse/issues/4084 <samp>(e9938)</samp>
    • useElementBounding: Add updateTiming option  -  by @DerZade and @antfu in https://github.com/vueuse/vueuse/issues/3869 <samp>(0fa17)</samp>
    • useElementHover: Add options to the directive  -  by @userquin and @antfu in https://github.com/vueuse/vueuse/issues/3897 <samp>(cf439)</samp>
    • useFocusTrap: Support multiple refs  -  by @Sma11X in https://github.com/vueuse/vueuse/issues/4022 <samp>(83c41)</samp>
    • useInfiniteScroll: Add a reset method  -  by @schelmo in https://github.com/vueuse/vueuse/issues/3892 <samp>(aefb6)</samp>
    • usePermission: Add local-fonts permission  -  by @seanmcbroom, @antfu and autofix-ci[bot] in https://github.com/vueuse/vueuse/issues/4098 <samp>(5f584)</samp>
    • useResizeObserver: Added vResizeObserver directive  -  by @pkc918 in https://github.com/vueuse/vueuse/issues/4008 <samp>(d4310)</samp>
    • useSpeechRecognition: Support maxAlternatives option  -  by @pkc918 in https://github.com/vueuse/vueuse/issues/4067 <samp>(9eda8)</samp>
    • useStorage: Conditionally use event based on the used storage backend  -  by @ferferga in https://github.com/vueuse/vueuse/issues/3822 <samp>(5a302)</samp>
    • useWebSocket: Allow different heartbeat response message  -  by @lavolpecheprogramma and @antfu in https://github.com/vueuse/vueuse/issues/3950 <samp>(adbe0)</samp>
    • useWindowSize: Add ability to get outer sizes of the window  -  by @khawarizmus and @antfu in https://github.com/vueuse/vueuse/issues/3999 <samp>(bfba3)</samp>

       🐞 Bug Fixes

    • computedWithControl: Allow optional oldValue parameter in computedWithControl getter  -  by @haoyun in https://github.com/vueuse/vueuse/issues/4132 <samp>(5725a)</samp>
    • isDefined: Moves most specific overload to the top  -  by @bjacobgordon-cy in https://github.com/vueuse/vueuse/issues/4141 <samp>(fd884)</samp>
    • until: Cleanup at next tick to avoid memory leak  -  by @Gianthard-cyh, @antfu and delaneyb in https://github.com/vueuse/vueuse/issues/4039 <samp>(8a023)</samp>
    • useChangeCase: Use the exported key for filter  -  by @thyngster, autofix-ci[bot] and @antfu in https://github.com/vueuse/vueuse/issues/4130 <samp>(5c598)</samp>
    • useColorMode, useDark: Fix full page reflows when calling useColorMode and useDark  -  by @jpleclerc, Jean-Philippe Leclerc and @antfu in https://github.com/vueuse/vueuse/issues/4001 <samp>(905b9)</samp>
    • useEventListener: Event target can be an empty ref/getter  -  by @floryst in https://github.com/vueuse/vueuse/issues/4014 <samp>(edab6)</samp>
    • useGamepad: Handle case where hapticActuators is not present  -  by @Aaron-zon in https://github.com/vueuse/vueuse/issues/4068 <samp>(0ca13)</samp>
    • useMouseInElement: el.getBoundingClientRect is not a function  -  by @loongzhu in https://github.com/vueuse/vueuse/issues/4056 <samp>(efe4d)</samp>
    • useMutationObserver: Stop watching before cleaning up  -  by @pimlie in https://github.com/vueuse/vueuse/issues/4037 <samp>(489a9)</samp>
    • useResizeObserver: Fix target is Ref Array  -  by @Alfred-Skyblue and @antfu in https://github.com/vueuse/vueuse/issues/4005 <samp>(1c124)</samp>
    • useRouteHash, useRouteParams, useRouteQuery: Fix effect triggering multiple times  -  by @aethr in https://github.com/vueuse/vueuse/issues/4113 <samp>(965bf)</samp>
    • useTextareaAutosize: Improve triggerResize triggering  -  by @Mutter45 and @antfu in https://github.com/vueuse/vueuse/issues/4074 <samp>(06c6f)</samp>
    • useWakeLock: Should delay wake lock request if document is hidden  -  by @KermanX in https://github.com/vueuse/vueuse/issues/4055 <samp>(5ca57)</samp>
    • watchDeep: Unify overload declaration for watch functions  -  by @KazariEX and @antfu in https://github.com/vueuse/vueuse/issues/4043 <samp>(0716d)</samp>

       🏎 Performance

    • useAnimate: Set sync false  -  by @JianJroh, @antfu and autofix-ci[bot] in https://github.com/vueuse/vueuse/issues/3916 <samp>(7b108)</samp>
        View changes on GitHub
    Open source →
  46. 11.0.0-beta.217 Jul 2024pre-release
    Release notes

       🚨 Breaking Changes

    • useIntersectionObserver: Update the threshold default to 0  -  by @Alfred-Skyblue in https://github.com/vueuse/vueuse/issues/4069 <samp>(13e36)</samp>

       🚀 Features

    • useCssVars: Remove property on null/undefined  -  by @ferferga in https://github.com/vueuse/vueuse/issues/3821 <samp>(fe19c)</samp>
    • useDateFormat: Locales is now reactive  -  by @OrbisK and Anthony Fu in https://github.com/vueuse/vueuse/issues/3907 <samp>(4a7a8)</samp>
    • useDraggable: Add buttons option  -  by @DrJonki and @antfu in https://github.com/vueuse/vueuse/issues/4084 <samp>(e9938)</samp>
    • useElementBounding: Add updateTiming option  -  by @DerZade and @antfu in https://github.com/vueuse/vueuse/issues/3869 <samp>(0fa17)</samp>
    • useElementHover: Add options to the directive  -  by @userquin and Anthony Fu in https://github.com/vueuse/vueuse/issues/3897 <samp>(cf439)</samp>
    • useFocusTrap: Support multiple refs  -  by @Sma11X in https://github.com/vueuse/vueuse/issues/4022 <samp>(83c41)</samp>
    • useInfiniteScroll: Add a reset method  -  by @schelmo in https://github.com/vueuse/vueuse/issues/3892 <samp>(aefb6)</samp>
    • usePermission: Add local-fonts permission  -  by @seanmcbroom, Anthony Fu and autofix-ci[bot] in https://github.com/vueuse/vueuse/issues/4098 <samp>(5f584)</samp>
    • useResizeObserver: Added vResizeObserver directive  -  by @pkc918 in https://github.com/vueuse/vueuse/issues/4008 <samp>(d4310)</samp>
    • useSpeechRecognition: Support maxAlternatives option  -  by @pkc918 in https://github.com/vueuse/vueuse/issues/4067 <samp>(9eda8)</samp>
    • useStorage: Conditionally use event based on the used storage backend  -  by @ferferga in https://github.com/vueuse/vueuse/issues/3822 <samp>(5a302)</samp>
    • useWebSocket: Allow different heartbeat response message  -  by @lavolpecheprogramma, @antfu and Anthony Fu in https://github.com/vueuse/vueuse/issues/3950 <samp>(adbe0)</samp>
    • useWindowSize: Add ability to get outer sizes of the window  -  by @khawarizmus and @antfu in https://github.com/vueuse/vueuse/issues/3999 <samp>(bfba3)</samp>

       🐞 Bug Fixes

    • until: Cleanup at next tick to avoid memory leak  -  by @Gianthard-cyh, @antfu and delaneyb in https://github.com/vueuse/vueuse/issues/4039 <samp>(8a023)</samp>
    • useColorMode, useDark: Fix full page reflows when calling useColorMode and useDark  -  by @jpleclerc, Jean-Philippe Leclerc, Anthony Fu and @antfu in https://github.com/vueuse/vueuse/issues/4001 <samp>(905b9)</samp>
    • useEventListener: Event target can be an empty ref/getter  -  by @floryst in https://github.com/vueuse/vueuse/issues/4014 <samp>(edab6)</samp>
    • useGamepad: Handle case where hapticActuators is not present  -  by @Aaron-zon in https://github.com/vueuse/vueuse/issues/4068 <samp>(0ca13)</samp>
    • useMouseInElement: el.getBoundingClientRect is not a function  -  by @loongzhu in https://github.com/vueuse/vueuse/issues/4056 <samp>(efe4d)</samp>
    • useResizeObserver: Fix target is Ref Array  -  by @Alfred-Skyblue and Anthony Fu in https://github.com/vueuse/vueuse/issues/4005 <samp>(1c124)</samp>
    • useTextareaAutosize: Improve triggerResize triggering  -  by @Mutter45 and Anthony Fu in https://github.com/vueuse/vueuse/issues/4074 <samp>(06c6f)</samp>
    • useWakeLock: Should delay wake lock request if document is hidden  -  by @KermanX in https://github.com/vueuse/vueuse/issues/4055 <samp>(5ca57)</samp>
    • watchDeep: Unify overload declaration for watch functions  -  by @KazariEX and Anthony Fu in https://github.com/vueuse/vueuse/issues/4043 <samp>(0716d)</samp>

       🏎 Performance

    • useAnimate: Set sync false  -  by @JianJroh, Anthony Fu and autofix-ci[bot] in https://github.com/vueuse/vueuse/issues/3916 <samp>(7b108)</samp>
        View changes on GitHub
    Open source →
  47. 11.0.0-beta.112 Jun 2024pre-release
    Release notes

       🚨 Breaking Changes

    • useChangeCase: Migrate to change-case@v5, closes #3457  -  by @wheatjs and @antfu in https://github.com/vueuse/vueuse/issues/3460 and https://github.com/vueuse/vueuse/issues/3457 <samp>(df343)</samp>
    • useFuse: Upgrade fuse.js to v7  -  by @antfu in https://github.com/vueuse/vueuse/issues/4036 <samp>(cb44c)</samp>
    • useJwt: Upgrade jwt-decode to v4  -  by @root5427 and @antfu in https://github.com/vueuse/vueuse/issues/3510 <samp>(9037d)</samp>

       🚀 Features

       🐞 Bug Fixes

    • useMutationObserver: Stop watching before cleaning up  -  by @pimlie in https://github.com/vueuse/vueuse/issues/4037 <samp>(489a9)</samp>
        View changes on GitHub
    Open source →
  48. 10.11.18 Aug 2024
    Release notes

    No significant changes

        View changes on GitHub
    Open source →
  49. 10.11.012 Jun 2024
    Release notes

       🐞 Bug Fixes

        View changes on GitHub
    Open source →
  50. 10.10.111 Jun 2024
    Release notes

       🚀 Features

    • useFocus: Support preventScroll option  -  by @pkc918 in https://github.com/vueuse/vueuse/issues/3994 <samp>(4d868)</samp>

       🐞 Bug Fixes

    • makeDestructurable: Fix Typescript < 5.0.0 support  -  by @brenoepics in https://github.com/vueuse/vueuse/issues/4028 <samp>(842d7)</samp>
    • useSpeechRecognition: Send correct transcript result  -  by @noook in https://github.com/vueuse/vueuse/issues/3891 <samp>(7c36f)</samp>
        View changes on GitHub
    Open source →
  51. 10.10.027 May 2024
    Release notes

       🚀 Features

    • createInjectionState: Add defaultValue option  -  by @melishev in https://github.com/vueuse/vueuse/issues/3902 <samp>(fb468)</samp>
    • makeDestructurable: Support parameters without as const  -  by @enpitsuLin in https://github.com/vueuse/vueuse/issues/3971 <samp>(4ea13)</samp>
    • nuxt: Add router addon to nuxt module  -  by @Coiggahou2002 and rorycai in https://github.com/vueuse/vueuse/issues/3975 <samp>(2a77f)</samp>
    • onLongPress: options.onMouseUp callback  -  by @noook and Anthony Fu in https://github.com/vueuse/vueuse/issues/3791 <samp>(7346a)</samp>
    • useActiveElement: Add triggerOnRemoval option  -  by @alexzhang1030 and @antfu in https://github.com/vueuse/vueuse/issues/3958 <samp>(f3515)</samp>
    • useEventSource: Return lastEventId  -  by @pkc918 in https://github.com/vueuse/vueuse/issues/3984 <samp>(29bc6)</samp>
    • useTimeout: Target support reactivity  -  by @huiliangShen and banruo in https://github.com/vueuse/vueuse/issues/3923 <samp>(4eede)</samp>
    • useWebWorkerFn: Support local function dependencies  -  by @thefeymesaleng in https://github.com/vueuse/vueuse/issues/3899 <samp>(f4028)</samp>

       🐞 Bug Fixes

    • nuxt: Opt in to import.meta.* properties  -  by @danielroe in https://github.com/vueuse/vueuse/issues/3888 <samp>(1558c)</samp>
    • useAnimate: commitStyles when finish  -  by @a1mersnow in https://github.com/vueuse/vueuse/issues/3990 <samp>(fba4e)</samp>
    • useDisplayMedia: Stop stream when screen is not shared anymore  -  by @robertrosman in https://github.com/vueuse/vueuse/issues/3976 <samp>(a3c6f)</samp>
    • useDraggable: Should ignore right clicks  -  by @Justineo in https://github.com/vueuse/vueuse/issues/3850 <samp>(9f10a)</samp>
    • useElementSize: Use getBoundingClientRect get element size on SVG  -  by @siaikin in https://github.com/vueuse/vueuse/issues/3940 <samp>(d8015)</samp>
    • useFileDialog: Check if input value exists before trigger onChange  -  by @jinkaiqin in https://github.com/vueuse/vueuse/issues/3972 <samp>(424a2)</samp>
    • useGamepad: Avoid spread to fix gamepad state  -  by @yue4u in https://github.com/vueuse/vueuse/issues/3913 <samp>(2ccbd)</samp>
    • useMediaControls: Target params may not be ref  -  by @huiliangShen in https://github.com/vueuse/vueuse/issues/3921 <samp>(1fe2f)</samp>
    • useMounted: The second argument in vue2.7 should be undefined  -  by @yanbowe, @antfu and Glandos in https://github.com/vueuse/vueuse/issues/3830 <samp>(7966b)</samp>
    • useRouteParams: Support optional params  -  by @huiliangShen in https://github.com/vueuse/vueuse/issues/3934 <samp>(4a882)</samp>
    • useScroll: Sync scroll val to internal state, fix #3809  -  by @kongmoumou in https://github.com/vueuse/vueuse/issues/3817 and https://github.com/vueuse/vueuse/issues/3809 <samp>(317ca)</samp>
    • useScrollLock: Function unlock does not work  -  by @loongzhu in https://github.com/vueuse/vueuse/issues/3847 <samp>(d9ee4)</samp>
    • useTextareaAutosize: OnResize callback fires not only on resize  -  by @huiliangShen and banruo in https://github.com/vueuse/vueuse/issues/3887 <samp>(a6ede)</samp>
    • useVirtualList: Add containerRef to watch list  -  by @eliamartani in https://github.com/vueuse/vueuse/issues/3855 <samp>(4636f)</samp>
    • useWebNotification: Detect isSupported with try-catch  -  by @9romise in https://github.com/vueuse/vueuse/issues/3980 <samp>(b291c)</samp>
    • useWebSocket: UrlRef changes were not being tracked  -  by @ferferga in https://github.com/vueuse/vueuse/issues/3870 <samp>(c2f92)</samp>
        View changes on GitHub
    Open source →
  52. 10.9.027 Feb 2024
    Release notes

       🚀 Features

    • whenever: Override once option  -  by @chizukicn in https://github.com/vueuse/vueuse/issues/3800 <samp>(bd946)</samp>

       🐞 Bug Fixes

    • useActiveElement/useFocusWithin: Replace computedWithControl with locally tracked ref  -  by @jaketig in https://github.com/vueuse/vueuse/issues/3815 <samp>(b1426)</samp>
    • useClipboard: Fix issue when permission is not defined  -  by @Mister-Hope in https://github.com/vueuse/vueuse/issues/3812 <samp>(a9f02)</samp>
    • useIDBKeyval: Use toRaw instead of overriding the original object  -  by @ferferga in https://github.com/vueuse/vueuse/issues/3805 <samp>(1b67d)</samp>
    • useMounted: Compatible with vue2.7  -  by @yanbowe in https://github.com/vueuse/vueuse/issues/3802 <samp>(ee297)</samp>
    • useScrollLock: InitialOverflow is not working  -  by @BJ0815 in https://github.com/vueuse/vueuse/issues/3798 <samp>(74e86)</samp>
        View changes on GitHub
    Open source →
  53. 10.8.020 Feb 2024
    Release notes

       🚀 Features

    • createInjectionState: InjectionKey use composable name  -  by @zhangxuyang950313 in https://github.com/vueuse/vueuse/issues/3788 <samp>(c2cfd)</samp>
    • nuxt: Move to ESM-first and fix types  -  by @userquin in https://github.com/vueuse/vueuse/issues/3606 <samp>(b3d74)</samp>
    • throttleFilter: Support object as argument  -  by @17359898647 and Anthony Fu in https://github.com/vueuse/vueuse/issues/3722 <samp>(66d09)</samp>
    • useAxios: Support abortPrevious option  -  by @jahnli and @antfu in https://github.com/vueuse/vueuse/issues/3735 <samp>(b94de)</samp>
    • useBreakpoints: Enable passing ref or getter to get breakpoints  -  by @Doctor-wu in https://github.com/vueuse/vueuse/issues/3621 <samp>(d3317)</samp>
    • useBreakpoints: Add strategy option to allow desktop-first convention  -  by @jack-allocate and @antfu in https://github.com/vueuse/vueuse/issues/3783 <samp>(15fc0)</samp>
    • useBreakpoints: Add active getter, add breakpoints for Vuetify v3  -  by @altrusl, @Doctor-wu and @antfu in https://github.com/vueuse/vueuse/issues/3687 <samp>(3ae45)</samp>
    • useCurrentElement: Allow get current element from a specific component  -  by @linspw and @antfu in https://github.com/vueuse/vueuse/issues/3750 <samp>(0a9aa)</samp>
    • useCycleList: Add go function  -  by @Jokerzhzh and @antfu in https://github.com/vueuse/vueuse/issues/3615 <samp>(2ae36)</samp>
    • useDraggable: Add disabled parameter  -  by @huiliangShen and banruo in https://github.com/vueuse/vueuse/issues/3613 <samp>(dee9a)</samp>
    • useEventSource: Add autoReconnect and immediate to options, update typings  -  by @schelmo in https://github.com/vueuse/vueuse/issues/3793 <samp>(b33ab)</samp>
    • useMutationObserver: Allow multiple targets  -  by @chirokas in https://github.com/vueuse/vueuse/issues/3741 <samp>(98fac)</samp>
    • useParallax: Can work with different screen orientation  -  by @huiliangShen and banruo in https://github.com/vueuse/vueuse/issues/3675 <samp>(3fd94)</samp>
    • useTextareaAutosize: Allow configuring styleProp to support native rows attribute  -  by @yakudik, alexander.kudinov, Anthony Fu and @antfu in https://github.com/vueuse/vueuse/issues/3552 <samp>(5025e)</samp>

       🐞 Bug Fixes

    • Stricter types  -  by @antfu <samp>(a086e)</samp>
    • createReusableTemplate: Improve types  -  by @louiss0, louiss0, Anthony Fu and @antfu in https://github.com/vueuse/vueuse/issues/3641 <samp>(75168)</samp>
    • useAnimate: Immediate option set false not working  -  by @huiliangShen, banruo and Anthony Fu in https://github.com/vueuse/vueuse/issues/3763 <samp>(12c09)</samp>
    • useCloned: Correct return type  -  by @17359898647 in https://github.com/vueuse/vueuse/issues/3711 <samp>(e262f)</samp>
    • useCounter: Allow delta to be negative  -  by @leewakin, @Doctor-wu and @antfu in https://github.com/vueuse/vueuse/issues/3650 <samp>(cf29c)</samp>
    • useDraggable: Avoid moving out of container  -  by @wangliangxin and wangliangxin3 in https://github.com/vueuse/vueuse/issues/3768 <samp>(55b94)</samp>
    • useElementVisiblity: Can configurable threshold  -  by @huiliangShen and @Doctor-wu in https://github.com/vueuse/vueuse/issues/3715 <samp>(ce9bb)</samp>
    • useFetch: Mark isFinished, isFetching readonly  -  by @baboon-king and @antfu in https://github.com/vueuse/vueuse/issues/3616 <samp>(31d4a)</samp>
    • useFetch: Remove unnecessary spread operator in iterable conversion  -  by @BlackCrowxyz in https://github.com/vueuse/vueuse/issues/3660 <samp>(f5587)</samp>
    • useFileSystemAccess: UpdateData on modified file  -  by @PhE in https://github.com/vueuse/vueuse/issues/3780 <samp>(668ca)</samp>
    • useGamepad: Explicitly ensure gamepad index is available  -  by @AntoninRousset and AntoninRousset in https://github.com/vueuse/vueuse/issues/3653 <samp>(8c735)</samp>
    • useGamepad: Improve data updating logic  -  by @okydk in https://github.com/vueuse/vueuse/issues/3775 <samp>(9b8ed)</samp>
    • useMounted: Hold the instance, close #3785, close #3795  -  by @antfu in https://github.com/vueuse/vueuse/issues/3785 and https://github.com/vueuse/vueuse/issues/3795 <samp>(2f66e)</samp>
    • useRafFn: Fix fpsLimit option, fix #3481, close #3482  -  by @antfu in https://github.com/vueuse/vueuse/issues/3481 and https://github.com/vueuse/vueuse/issues/3482 <samp>(69990)</samp>
    • useResizeObserver: Do not watch deep to avoid cicular calls  -  by @birdxiao, birdxiao and @antfu in https://github.com/vueuse/vueuse/issues/3753 <samp>(48421)</samp>
    • useRouteParams,useRouteQuery: Set route param/query to undefined when null or defaultValue  -  by @mtdvlpr and @antfu in https://github.com/vueuse/vueuse/issues/3583 <samp>(c44fe)</samp>
    • useScroll: Add onError hook and avoid throws by default, fix #3580  -  by @steklopod, @antfu and Brendo Maciel in https://github.com/vueuse/vueuse/issues/3605 and https://github.com/vueuse/vueuse/issues/3580 <samp>(fab86)</samp>
    • useStorage: Ensure setting value to null syncs to other instances  -  by @callumacrae and @antfu in https://github.com/vueuse/vueuse/issues/3737 <samp>(f7ea1)</samp>
    • useUserMedia: Stop stream on scope dispose  -  by @Waleed-KH in https://github.com/vueuse/vueuse/issues/3757 <samp>(6d44d)</samp>
    • useWebSocket: Reset wsRef on close, fix #3706  -  by @a982246809 and @Doctor-wu in https://github.com/vueuse/vueuse/issues/3707 and https://github.com/vueuse/vueuse/issues/3706 <samp>(9a47a)</samp>
    • useWebSocket: immediate should only be applied once, close #3676  -  by @antfu in https://github.com/vueuse/vueuse/issues/3676 <samp>(93b96)</samp>
        View changes on GitHub
    Open source →
  54. 10.7.214 Jan 2024
    Release notes

       🐞 Bug Fixes

    • computedEager: Adapt to changes in vue3.4+  -  by @Doctor-wu in https://github.com/vueuse/vueuse/issues/3689 <samp>(b6d8f)</samp>
    • nuxt: Move nuxt out of dependencies  -  by @antfu <samp>(866a1)</samp>
    • useAxios: Ignore undefined options  -  by @geektheripper, @Doctor-wu, @antfu and Doctorwu in https://github.com/vueuse/vueuse/issues/3662 <samp>(37eae)</samp>
    • useBattery: Fake signal API support in some utilities  -  by @tachibana-shin and @Doctor-wu in https://github.com/vueuse/vueuse/issues/3634 <samp>(30245)</samp>
    • useDraggable: Can not work well when parent element is scrollable  -  by @huiliangShen and banruo in https://github.com/vueuse/vueuse/issues/3692 <samp>(bdd79)</samp>
    • useStorageAsync: Correct ssr handler  -  by @Doctor-wu in https://github.com/vueuse/vueuse/issues/3703 <samp>(c197e)</samp>
    • useTimeAgo: Support custom UnitNames type for units field  -  by @nickmessing and @Doctor-wu in https://github.com/vueuse/vueuse/issues/3684 <samp>(1d6be)</samp>
        View changes on GitHub
    Open source →
  55. 10.7.127 Dec 2023
    Release notes

       🚀 Features

    • syncRef: Enhance type  -  by @Doctor-wu in https://github.com/vueuse/vueuse/issues/3678 <samp>(dad66)</samp>

       🐞 Bug Fixes

    • Fix tryOnMounted in vue2  -  by @Doctor-wu in https://github.com/vueuse/vueuse/issues/3658 <samp>(ce420)</samp>
    • nuxt: Stable optimizeDeps augmenting  -  by @antfu <samp>(98985)</samp>
    • useDropzone: Avoid circular reference  -  by @diegopf in https://github.com/vueuse/vueuse/issues/3683 <samp>(15a38)</samp>
    • useElementBounding: Trigger by css or style  -  by @huiliangShen in https://github.com/vueuse/vueuse/issues/3664 <samp>(70dbd)</samp>
    • useIpcRenderer: Set explicit return type  -  by @antfu <samp>(dd820)</samp>
    • useMouse: Handle Touch class compatibility for Firefox  -  by @elschilling in https://github.com/vueuse/vueuse/issues/3679 <samp>(5719b)</samp>
    • useVirtualList: Ensure component applies overflow style  -  by @reubns in https://github.com/vueuse/vueuse/issues/3626 <samp>(286c3)</samp>
        View changes on GitHub
    Open source →
  56. 10.7.05 Dec 2023
    Release notes

       🚀 Features

    • Upgrade deps  -  by @antfu in https://github.com/vueuse/vueuse/issues/3614 <samp>(fccf2)</samp>
    • isIOS: Detect new iPad  -  by @Doctor-wu and @antfu in https://github.com/vueuse/vueuse/issues/3582 <samp>(47d2d)</samp>
    • onLongPress: Add distanceThreshold option  -  by @donaldxdonald and @antfu in https://github.com/vueuse/vueuse/issues/3578 <samp>(0e04a)</samp>
    • tryOnMounted: Support target arguement  -  by @tolking and @antfu in https://github.com/vueuse/vueuse/issues/3185 <samp>(f2aeb)</samp>
    • useBreakpoints: Make parameters reactivity  -  by @Doctor-wu in https://github.com/vueuse/vueuse/issues/3592 <samp>(dc624)</samp>
    • useFileDialog: Trigger onChange when reset  -  by @Doctor-wu in https://github.com/vueuse/vueuse/issues/3548 <samp>(7e2da)</samp>
    • useInfiniteScroll: Add the canLoadMore option  -  by @Alfred-Skyblue in https://github.com/vueuse/vueuse/issues/3558 <samp>(e780f)</samp>
    • usePointerSwipe: Add disableTextSelect option  -  by @aminmokhtari94 in https://github.com/vueuse/vueuse/issues/3604 <samp>(fd67b)</samp>
    • useTitle: Restore title on unmounted  -  by @Doctor-wu and @antfu in https://github.com/vueuse/vueuse/issues/3570 <samp>(0ab76)</samp>

       🐞 Bug Fixes

    • createEventHook: Make createEventHook union type can be inferred correctly  -  by @Doctor-wu in https://github.com/vueuse/vueuse/issues/3569 <samp>(e48ca)</samp>
    • createEventHook: trigger should not ignore falsy values  -  by @romansp and @Alfred-Skyblue in https://github.com/vueuse/vueuse/issues/3561 <samp>(3733b)</samp>
    • syncRef: SyncRef typing issue for boolean  -  by @s-montigny-desautels in https://github.com/vueuse/vueuse/issues/3553 <samp>(acb2f)</samp>
    • useAxios: Reset isAborted value on success  -  by @17359898647 and @antfu in https://github.com/vueuse/vueuse/issues/3547 <samp>(4b159)</samp>
    • useDark: In Vue 2.6 mode.system is undefined  -  by @Teaghy, hguan and @antfu in https://github.com/vueuse/vueuse/issues/3562 <samp>(68688)</samp>
    • useDropZone: Fix file types filter  -  by @getname1997 and @antfu in https://github.com/vueuse/vueuse/issues/3540 <samp>(8f42a)</samp>
    • useElementVisibility: Use last intersection entry  -  by @ziolko-appfire, Mateusz Zieliński and @antfu in https://github.com/vueuse/vueuse/issues/3365 <samp>(07d39)</samp>
    • useFetch: Immediately modify the status after the request is completed  -  by @tolking and @antfu in https://github.com/vueuse/vueuse/issues/3603 <samp>(3456d)</samp>
    • useFetch: Clone 'Response' on reading  -  by @mymx2 and @antfu in https://github.com/vueuse/vueuse/issues/3607 and https://github.com/vueuse/vueuse/issues/3608 <samp>(8cbfd)</samp>
    • useMemoize: Use shallowReactive to wrap Map  -  by @antfu <samp>(fecbe)</samp>
    • useMousePressed: Change type of element parameter to MaybeComputedElementRef  -  by @4350pChris in https://github.com/vueuse/vueuse/issues/3566 <samp>(17f97)</samp>
    • useOffsetPagination: Don't mutate props when it's readonly  -  by @Doctor-wu in https://github.com/vueuse/vueuse/issues/3581 <samp>(4dace)</samp>
    • useScreenOrientation: Add fault tolerance to lock and unlock  -  by @satrong in https://github.com/vueuse/vueuse/issues/3575 <samp>(be3cc)</samp>
    • useStorage: Fix undefined defaults  -  by @Doctor-wu in https://github.com/vueuse/vueuse/issues/3597 <samp>(04220)</samp>
        View changes on GitHub
    Open source →
  57. 10.6.113 Nov 2023
    Release notes

       🐞 Bug Fixes

    • useScroll: Can not read properties of null (reading document)  -  by @Jokerzhzh and @joaopslins in https://github.com/vueuse/vueuse/issues/3544 <samp>(e9742)</samp>
    • useVirtualList: .style can be undefined  -  by @antfu <samp>(3d6b9)</samp>
        View changes on GitHub
    Open source →
  58. 10.6.09 Nov 2023
    Release notes

       🚀 Features

    • createEventHook: Allow trigger to optionally have no parameters  -  by @curtgrimes in https://github.com/vueuse/vueuse/issues/3507 <samp>(6040e)</samp>
    • onLongClick: Return stop function  -  by @its-lee and lee in https://github.com/vueuse/vueuse/issues/3506 <samp>(8eb0b)</samp>
    • syncRef: Enhance syncRef type restrict  -  by @Doctor-wu in https://github.com/vueuse/vueuse/issues/3515 <samp>(89266)</samp>
    • useClipboard: UseClipboard component  -  by @alexzvn, Alexzvn and @antfu in https://github.com/vueuse/vueuse/issues/3359 <samp>(71b46)</samp>
    • useClipboardItems: New function  -  by @Doctor-wu and @antfu in https://github.com/vueuse/vueuse/issues/3477 <samp>(1aa50)</samp>
    • useDateFormat: Add date ordinal formatting  -  by @Jokerzhzh and @antfu in https://github.com/vueuse/vueuse/issues/3474 <samp>(61ceb)</samp>
    • useDropZone: Add dataTypes option  -  by @rtugeek and @antfu in https://github.com/vueuse/vueuse/issues/3471 <samp>(3f3f1)</samp>
    • useElementSize: Stop function  -  by @chaii3 and @antfu in https://github.com/vueuse/vueuse/issues/3367 <samp>(5f545)</samp>
    • useFileDialog: Add directory parameters  -  by @huiliangShen and banruo in https://github.com/vueuse/vueuse/issues/3513 <samp>(cefca)</samp>
    • useMutationObserver: Add takeRecords function  -  by @Alfred-Skyblue in https://github.com/vueuse/vueuse/issues/3480 <samp>(f9136)</samp>
    • useStorage: Add waitOnMounted option for SSR  -  by @posva and @antfu in https://github.com/vueuse/vueuse/issues/3504 <samp>(dc6f2)</samp>
    • useWindowScroll: Allow rewriting back to scroll  -  by @nothing-sy, chensiyuan and @antfu in https://github.com/vueuse/vueuse/issues/3500 <samp>(931b2)</samp>
    • watchOnce: Return function for manual watcher stopping  -  by @valerypatorius in https://github.com/vueuse/vueuse/issues/3475 <samp>(bb0a7)</samp>

       🐞 Bug Fixes

    • onClickOutside: Adjust shouldListen handling timing  -  by @Doctor-wu in https://github.com/vueuse/vueuse/issues/3503 <samp>(69851)</samp>
    • onScrollLock: Cache the el initial overflow value  -  by @Doctor-wu in https://github.com/vueuse/vueuse/issues/3527 <samp>(03866)</samp>
    • useAxios: Bail out on request abort  -  by @jahnli in https://github.com/vueuse/vueuse/issues/3394 <samp>(151f9)</samp>
    • useClipboard: Use legacy way when without permission  -  by @Cat1007, catye, @posva and @antfu in https://github.com/vueuse/vueuse/issues/3379 <samp>(37e86)</samp>
    • useDraggable: Element can't relative parent element move  -  by @huiliangShen and banruo in https://github.com/vueuse/vueuse/issues/3531 <samp>(08246)</samp>
    • useElementSize: Get value in onMounted hook  -  by @chaii3 and @antfu in https://github.com/vueuse/vueuse/issues/3366 <samp>(165c8)</samp>
    • useFetch: Don't set isFetching to false when a request is aborted because of a refetch  -  by @mweghorst and @antfu in https://github.com/vueuse/vueuse/issues/3479 <samp>(75ca2)</samp>
    • useMouseInElement: Optimize outside computation  -  by @qiYuei, fengmingjian and @antfu in https://github.com/vueuse/vueuse/issues/3380 <samp>(7c88d)</samp>
    • useRouteQuery,useRouteParams: Prevent reset on other scope dispose  -  by @s-montigny-desautels and @antfu in https://github.com/vueuse/vueuse/issues/3418 <samp>(771e7)</samp>
    • useScroll: Trigger once onMounted to get correct inital arrivedStates values  -  by @nicooprat and @antfu in https://github.com/vueuse/vueuse/issues/3384 <samp>(86bd8)</samp>
    • useSortable: Prevent from creating multi instances  -  by @Doctor-wu in https://github.com/vueuse/vueuse/issues/3501 <samp>(d9846)</samp>
    • useStorage: Fix defaults not unwrapped  -  by @Alfred-Skyblue in https://github.com/vueuse/vueuse/issues/3534 <samp>(b6d2b)</samp>
    • useWebSocket: Webworker support  -  by @binary-signal and @antfu in https://github.com/vueuse/vueuse/issues/3469 <samp>(9b014)</samp>
        View changes on GitHub
    Open source →
  59. 10.5.07 Oct 2023
    Release notes

       🚀 Features

    • Add Promisify type definition  -  by @Alfred-Skyblue in https://github.com/vueuse/vueuse/issues/3420 <samp>(b067b)</samp>
    • createInjectionState: Allow provide and inject in same component  -  by @xiaoxiangmoe and @antfu in https://github.com/vueuse/vueuse/issues/3387 <samp>(5d948)</samp>
    • createInjectionState: Add injectionKey option  -  by @PPetau and @antfu in https://github.com/vueuse/vueuse/issues/3404 <samp>(90d34)</samp>
    • rxjs: Add useExtractedObservable and watchExtractedObservable  -  by @Voltra in https://github.com/vueuse/vueuse/issues/3453 <samp>(23b8c)</samp>
    • useFavicon: Add link tag if it doesn't exist  -  by @babu-ch in https://github.com/vueuse/vueuse/issues/3444 <samp>(d1fcc)</samp>
    • useMousePressed: Add capture option  -  by @DerZade and @antfu in https://github.com/vueuse/vueuse/issues/3392 <samp>(d5c81)</samp>
    • useMutationObserver: Use MaybeComputedElementRef  -  by @huodoushigemi in https://github.com/vueuse/vueuse/issues/3430 <samp>(8167b)</samp>
    • useRafFn: Option fpsLimit  -  by @f820602h and @antfu in https://github.com/vueuse/vueuse/issues/3459 <samp>(8e4c0)</samp>

       🐞 Bug Fixes

    • Vue 2 support for provideLocal and injectLocal  -  by @xiaoxiangmoe in https://github.com/vueuse/vueuse/issues/3464 <samp>(cf757)</samp>
    • useBreakpoints: Add missing breakpoint for the bootstrap  -  by @edtorba in https://github.com/vueuse/vueuse/issues/3413 <samp>(ec9a4)</samp>
    • useDrauu: Spread options for brush  -  by @17359898647 in https://github.com/vueuse/vueuse/issues/3463 <samp>(87ea3)</samp>
    • useVModels: Type error with passive: true  -  by @chaii3 in https://github.com/vueuse/vueuse/issues/3362 <samp>(51f01)</samp>
    • useWebNotification: Condition check on permission  -  by @SampsonCrowley in https://github.com/vueuse/vueuse/issues/3422 <samp>(2f2b4)</samp>
    • useWebSocket: Ssr support  -  by @huangyan321 in https://github.com/vueuse/vueuse/issues/3370 <samp>(c3a69)</samp>
        View changes on GitHub
    Open source →
  60. 10.4.128 Aug 2023
    Release notes

       🐞 Bug Fixes

    • Transpile target to es2018, close #3349  -  by @antfu in https://github.com/vueuse/vueuse/issues/3349 <samp>(0e4a5)</samp>
    • useEventListener: Immutable options on removal, close #2825  -  by @antfu in https://github.com/vueuse/vueuse/issues/3346 and https://github.com/vueuse/vueuse/issues/2825 <samp>(3ef59)</samp>
        View changes on GitHub
    Open source →