Skip to content

useRaf

提供便捷的 requestAnimationFrame 的调用和取消。

单次调用

通过 useRaf 方法,可以在下一次浏览器重新绘制之前调用指定的函数。

js
import { useRaf } from '@ryxon/use'

export default {
  setup() {
    let count = 0
    useRaf(() => {
      console.log(++count) // 只会执行 1 次
    })
  }
}

循环调用

通过开启 isLoop 选项,你可以按指定的间隔重复执行某个函数,直到被取消。

js
import { useRaf } from '@ryxon/use'

export default {
  setup() {
    let count = 0
    const cancelRaf = useRaf(
      () => {
        console.log(++count) // 无限执行,直到被 cancel

        if (count === 5) {
          cancelRaf()
        }
      },
      {
        isLoop: true, // 开启循环
        interval: 100 // 设置调用间隔
      }
    )
  }
}

API

类型定义

ts
function useRaf(
  callback: () => void,
  options: {
    interval?: number
    isLoop?: boolean
  }
) {}

参数

参数说明类型默认
callback回调函数() => void() => void
options配置参数{ interval?: number; isLoop?: boolean }{ interval: 0; isLoop: false }

Released under the MIT License.