当前位置: 首页 > news >正文

Vue3组合式函数(刷新率 useFps)

主要用于实时监听当前浏览器页面的刷新率

工具函数源码

/**
 * 组合式函数
 * 实时监测浏览器刷新率FPS
 *
 * FPS值可以帮助开发者识别性能瓶颈,以优化应用的性能
 *
 * @returns {Object} 返回一个包含 FPS 值的 ref 对象
 */
import { ref } from 'vue'
export function useFps() {
  const fps = ref<number>(0)
  const frameCount = ref<number>(0)
  let lastTime = performance.now()
  const every = 10
  const calculateFrameRate = (currentTime: number) => {
    frameCount.value++
    if (frameCount.value >= every) {
      // 每 every 帧进行一次 FPS 计算
      const timeDiff = currentTime - lastTime
      fps.value = Math.round(1000 / (timeDiff / every))
      lastTime = currentTime
      frameCount.value = 0
    }
    requestAnimationFrame(calculateFrameRate)
  }
  requestAnimationFrame(calculateFrameRate)
  // 返回帧率状态
  return { fps }
}

效果如下图

在这里插入图片描述

在线预览

基本使用

<script setup lang="ts">
import { ref } from 'vue'
import { useFps } from 'vue-amazing-ui'
const { fps } = useFps()
</script>
<template>
  <h3>帧率:{{ fps }}</h3>
</template>

相关文章:

  • 搞定python之九----常用内置模块
  • linux环境下快速输出电脑的系统/硬件/显卡/网络/已安装软件等信息
  • AT指令集-NBIOT
  • 【Linux】深度解析Linux进程管理:从进程PCB到创建子进程的全景指南
  • 常见的前端安全问题
  • 探索HTML5 Canvas:创造动态与交互性网页内容的强大工具
  • vim在连续多行行首插入相同的字符
  • 3.18学习总结java
  • 2025/3.17 郭院安排会议与南京银行参访
  • JMeter基本介绍
  • SpringCloud 学习笔记3(OpenFeign)
  • springboot实现调用百度ocr实现身份识别
  • 【实习经历Two:参与开源项目,学习并应用Git】
  • Ubuntu togo系统读写性能与原生系统测试
  • 【leetcode hot 100 124】二叉树中的最大路径和
  • OSG简介
  • 2025 ubuntu系统安装docker并迁移docker,docker安装到指定的目录以及文件迁移,docker迁移文件
  • 滚动元素的新api
  • 大模型GGUF和LLaMA的区别
  • 整体二分算法讲解及例题
  • 新华时评:防范安全事故须臾不可放松
  • 媒体:酒店、民宿临时毁约涨价,怎么管?
  • 中方拟解除对5名欧洲议会议员制裁?外交部:望中欧立法机构相向而行
  • 聚焦各领域顶尖工匠,《上海工匠》第十季于五一播出
  • 宁波市纪委监委通报4起违反中央八项规定精神典型问题
  • 移动互联网未成年人模式正式发布