Pulled ALL skills from 15 source repositories: - anthropics/skills: 16 (docs, design, MCP, testing) - obra/superpowers: 14 (TDD, debugging, agents, planning) - coreyhaines31/marketingskills: 25 (marketing, CRO, SEO, growth) - better-auth/skills: 5 (auth patterns) - vercel-labs/agent-skills: 5 (React, design, Vercel) - antfu/skills: 16 (Vue, Vite, Vitest, pnpm, Turborepo) - Plus 13 individual skills from various repos Mosaic Stack is not limited to coding — the Orchestrator and subagents serve coding, business, design, marketing, writing, logistics, analysis, and more. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
58 lines
1.9 KiB
Markdown
58 lines
1.9 KiB
Markdown
---
|
|
category: Utilities
|
|
related: refThrottled, refDebounced, useDebounceFn
|
|
---
|
|
|
|
# useThrottleFn
|
|
|
|
Throttle execution of a function. Especially useful for rate limiting execution of handlers on events like resize and scroll.
|
|
|
|
> Throttle is a spring that throws balls: after a ball flies out it needs some time to shrink back, so it cannot throw any more balls unless it's ready.
|
|
|
|
## Usage
|
|
|
|
```ts
|
|
import { useThrottleFn } from '@vueuse/core'
|
|
|
|
const throttledFn = useThrottleFn(() => {
|
|
// do something, it will be called at most 1 time per second
|
|
}, 1000)
|
|
|
|
useEventListener(window, 'resize', throttledFn)
|
|
```
|
|
|
|
## Recommended Reading
|
|
|
|
- [**Debounce vs Throttle**: Definitive Visual Guide](https://kettanaito.com/blog/debounce-vs-throttle)
|
|
|
|
## Type Declarations
|
|
|
|
```ts
|
|
/**
|
|
* Throttle execution of a function. Especially useful for rate limiting
|
|
* execution of handlers on events like resize and scroll.
|
|
*
|
|
* @param fn A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,
|
|
* to `callback` when the throttled-function is executed.
|
|
* @param ms A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.
|
|
* (default value: 200)
|
|
*
|
|
* @param [trailing] if true, call fn again after the time is up (default value: false)
|
|
*
|
|
* @param [leading] if true, call fn on the leading edge of the ms timeout (default value: true)
|
|
*
|
|
* @param [rejectOnCancel] if true, reject the last call if it's been cancel (default value: false)
|
|
*
|
|
* @return A new, throttled, function.
|
|
*
|
|
* @__NO_SIDE_EFFECTS__
|
|
*/
|
|
export declare function useThrottleFn<T extends FunctionArgs>(
|
|
fn: T,
|
|
ms?: MaybeRefOrGetter<number>,
|
|
trailing?: boolean,
|
|
leading?: boolean,
|
|
rejectOnCancel?: boolean,
|
|
): PromisifyFn<T>
|
|
```
|