Skip to content

watchAtMost ​

Category
Export Size
379 B
Last Changed
8 months ago

watch with the number of times triggered.

Usage ​

Similar to watch with an extra option count which set up the number of times the callback function is triggered. After the count is reached, the watch will be stopped automatically.

ts
import { 
watchAtMost
} from '@vueuse/core'
watchAtMost
(
source, () => {
console
.
log
('trigger!') }, // triggered it at most 3 times
{
count
: 3, // the number of times triggered
}, )

Type Declarations ​

Show Type Declarations
ts
export interface 
WatchAtMostOptions
<
Immediate
,
> extends WatchWithFilterOptions<
Immediate
> {
count
:
MaybeRefOrGetter
<number>
} export interface WatchAtMostReturn {
stop
:
WatchStopHandle
pause
: () => void
resume
: () => void
count
:
ShallowRef
<number>
} export declare function
watchAtMost
<
T
,
Immediate
extends
Readonly
<boolean> = false,
>(
sources
:
WatchSource
<
T
>,
cb
:
WatchCallback
<
T
,
Immediate
extends true ?
T
| undefined :
T
>,
options
:
WatchAtMostOptions
<
Immediate
>,
): WatchAtMostReturn export declare function
watchAtMost
<
T
extends
Readonly
<
MultiWatchSources
>,
Immediate
extends
Readonly
<boolean> = false,
>(
sources
: [...
T
],
cb
:
WatchCallback
<
MapSources
<
T
>,
MapOldSources
<
T
,
Immediate
>>,
options
:
WatchAtMostOptions
<
Immediate
>,
): WatchAtMostReturn export declare function
watchAtMost
<
T
extends object,
Immediate
extends
Readonly
<boolean> = false,
>(
sources
:
T
,
cb
:
WatchCallback
<
MapSources
<
T
>,
MapOldSources
<
T
,
Immediate
>>,
options
:
WatchAtMostOptions
<
Immediate
>,
): WatchAtMostReturn

Source ​

Source • Docs

Contributors ​

Anthony Fu
Anthony Fu
IlyaL
山吹色御守
Kricsleo
Arthur Darkstone
vaakian X
lvjiaxuan
lvjiaxuan
HG
webfansplz

Changelog ​

f1d32 - fix(shared): align overloads order of watch functions with original version (#5288)
d3176 - feat: add pause and resume to return value (#4897)
7432f - feat(types): deprecate MaybeRef and MaybeRefOrGetter in favor of Vue's native (#4636)
59f75 - feat(toValue): deprecate toValue from @vueuse/shared in favor of Vue's native
0a9ed - feat!: drop Vue 2 support, optimize bundles and clean up (#4349)

Released under the MIT License.