Skip to content

watchDebounced

Category
Export Size
786 B
Last Changed
2 years ago
Alias
debouncedWatch

延迟触发的监听器

Demo

此演示中延迟设置为 1000ms,最大等待时间设置为 5000ms。

输入内容:

更新次数:0

使用方法

类似于 watch,但提供额外选项 debouncemaxWait,它们将应用于回调函数。

ts
import { watchDebounced } from '@vueuse/core'

watchDebounced(
  source,
  () => { console.log('变化了!') },
  { debounce: 500, maxWait: 1000 },
)

本质上,它是以下代码的简写形式:

ts
import { debounceFilter, watchWithFilter } from '@vueuse/core'

watchWithFilter(
  source,
  () => { console.log('变化了!') },
  {
    eventFilter: debounceFilter(500, { maxWait: 1000 }),
  },
)

类型声明

typescript
export interface WatchDebouncedOptions<Immediate>
  extends WatchOptions<Immediate>,
    DebounceFilterOptions {
  debounce?: MaybeRefOrGetter<number>
}
export declare function watchDebounced<
  T extends Readonly<WatchSource<unknown>[]>,
  Immediate extends Readonly<boolean> = false,
>(
  sources: [...T],
  cb: WatchCallback<MapSources<T>, MapOldSources<T, Immediate>>,
  options?: WatchDebouncedOptions<Immediate>,
): WatchStopHandle
export declare function watchDebounced<
  T,
  Immediate extends Readonly<boolean> = false,
>(
  source: WatchSource<T>,
  cb: WatchCallback<T, Immediate extends true ? T | undefined : T>,
  options?: WatchDebouncedOptions<Immediate>,
): WatchStopHandle
export declare function watchDebounced<
  T extends object,
  Immediate extends Readonly<boolean> = false,
>(
  source: T,
  cb: WatchCallback<T, Immediate extends true ? T | undefined : T>,
  options?: WatchDebouncedOptions<Immediate>,
): WatchStopHandle
export { watchDebounced as debouncedWatch }

Source

SourceDemoDocs

贡献者

Anthony Fu
丶远方
sun0day
webfansplz
Anthony Fu
vaakian X
lvjiaxuan

变更日志

v10.0.0-beta.4 on 4/13/2023
4d757 - feat(types)!: rename MaybeComputedRef to MaybeRefOrGetter

Released under the MIT License.