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

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>

http://www.kler.cn/a/591928.html

相关文章:

  • 焊接机器人与线激光视觉系统搭配的详细教程
  • 深度学习零碎知识
  • Linux 如何查看当前使用的shell
  • 【解析 ECharts 图表样式继承与自定义】
  • 【Json-RPC框架】:Json序列化后,不能显式中文?增加emitUTF8配置
  • GIT使用git push后遇到报错的解决办法
  • centos 7误删/bash 拯救方法
  • Jackson 库进行 JSON 序列化时遇到了 ‌无限递归(Infinite Recursion)‌ 问题
  • LabVIEW烟气速度场实时监测
  • Qt常用控件之Layout总篇
  • 科技引领品质生活:三星生活家电用AI开启衣物洗护新纪元
  • 笔记本电脑关不了机是怎么回事 这有解决方法
  • Vue3 + ECharts 数据可视化实战指南
  • NAT技术-初级总结
  • java面试题之多线程
  • ViT、DETR 和 Swin Transformer :基于 Transformer 的计算机视觉(CV)模型
  • k8s中PAUSE容器与init容器比较 local卷与hostpath卷比较
  • docker-compose install nginx(解决fastgpt跨区域)
  • ModBus TCP/RTU互转(主)(从)|| Modbus主动轮询下发的工业应用 || 基于智能网关的串口服务器进行Modbus数据收发的工业应用
  • 基于SpringBoot的在线拍卖系统