Skip to content

useRafFn

Category
Export Size
443 B
Last Changed
9 months ago

Call function on every requestAnimationFrame. With controls of pausing and resuming.

Demo

Frames: 242
Delta: 17ms
FPS Limit: 60

Usage

ts
import { 
useRafFn
} from '@vueuse/core'
import {
shallowRef
} from 'vue'
const
count
=
shallowRef
(0)
const {
pause
,
resume
} =
useRafFn
(() => {
count
.
value
++
console
.
log
(
count
.
value
)
})

Type Declarations

Show Type Declarations
ts
export interface UseRafFnCallbackArguments {
  /**
   * Time elapsed between this and the last frame.
   */
  
delta
: number
/** * Time elapsed since the creation of the web page. See {@link https://developer.mozilla.org/en-US/docs/Web/API/DOMHighResTimeStamp#the_time_origin Time origin}. */
timestamp
:
DOMHighResTimeStamp
} export interface UseRafFnOptions extends ConfigurableWindow { /** * Start the requestAnimationFrame loop immediately on creation * * @default true */
immediate
?: boolean
/** * The maximum frame per second to execute the function. * Set to `undefined` to disable the limit. * * @default undefined */
fpsLimit
?:
MaybeRefOrGetter
<number>
/** * After the requestAnimationFrame loop executed once, it will be automatically stopped. * * @default false */
once
?: boolean
} /** * Call function on every `requestAnimationFrame`. With controls of pausing and resuming. * * @see https://vueuse.org/useRafFn * @param fn * @param options */ export declare function
useRafFn
(
fn
: (
args
: UseRafFnCallbackArguments) => void,
options
?: UseRafFnOptions,
):
Pausable

Source

SourceDemoDocs

Contributors

Anthony Fu
Anthony Fu
Robin
SerKo
IlyaL
btea
OrbisK
max.lee
Hayk Khachatryan
Dan Rose
Enzo Innocenzi
Jelf
he yifan
Alex Kozack

Changelog

v12.7.0 on
3041e - feat: add once option (#4583)
v12.1.0 on
4759f - feat: allow framerate to be a reactive value (#4409)
v12.0.0-beta.1 on
0a9ed - feat!: drop Vue 2 support, optimize bundles and clean up (#4349)
v10.8.0 on
69990 - fix: fix fpsLimit option, fix #3481, close #3482
v10.5.0 on
8e4c0 - feat: option fpsLimit (#3459)
v10.2.1 on
cf6eb - fix: set initial delta to zero (#3150)

Released under the MIT License.

BLACK FRIDAY EARLY BIRD
60% OFF + BONUSES:
Any Junior Certification + 2x AI Courses
Get Certified
07
hours
:
21
minutes
:
38
seconds
: