--- category: Watch alias: debouncedWatch --- # watchDebounced Debounced watch ## Usage Similar to `watch`, but offering extra options `debounce` and `maxWait` which will be applied to the callback function. ```ts import { watchDebounced } from '@vueuse/core' watchDebounced( source, () => { console.log('changed!') }, { debounce: 500, maxWait: 1000 }, ) ``` It's essentially a shorthand for the following code: ```ts import { debounceFilter, watchWithFilter } from '@vueuse/core' watchWithFilter( source, () => { console.log('changed!') }, { eventFilter: debounceFilter(500, { maxWait: 1000 }), }, ) ``` ## Type Declarations ```ts export interface WatchDebouncedOptions extends WatchOptions, DebounceFilterOptions { debounce?: MaybeRefOrGetter } export declare function watchDebounced< T extends Readonly, Immediate extends Readonly = false, >( sources: [...T], cb: WatchCallback, MapOldSources>, options?: WatchDebouncedOptions, ): WatchHandle export declare function watchDebounced< T, Immediate extends Readonly = false, >( source: WatchSource, cb: WatchCallback, options?: WatchDebouncedOptions, ): WatchHandle export declare function watchDebounced< T extends object, Immediate extends Readonly = false, >( source: T, cb: WatchCallback, options?: WatchDebouncedOptions, ): WatchHandle /** @deprecated use `watchDebounced` instead */ export declare const debouncedWatch: typeof watchDebounced ```