vue3使用defer优化项目白屏加载时间

defer.ts

javascript 复制代码
import { ref } from 'vue'

export function useDefer() {
  const frameCount = ref(1)
  function updateFrameCount() {
    requestAnimationFrame(() => {
      frameCount.value++
      updateFrameCount()
    })
  }
  updateFrameCount()
  return function (n: any) {
    return frameCount.value >= n
  }
}

在.vue文件中使用,按帧数加载组件

javascript 复制代码
<template>
	<div>
		<Header v-if="defer(1)"></Header>
		<Main v-if="defer(2)"></Main>
		<Footer v-if="defer(3)"></Footer>
	</div>
</template>
<script>
	import { useDefer } from '@/utils/defer'
	const defer = useDefer()
</script>
相关推荐
雪芽蓝域zzs1 分钟前
第 7 节:多边形点击弹窗 + 清空绘制按钮
vue.js
溪语流沙11 分钟前
【Web全栈进阶】Composition API与组件通信:props深入、emit、插槽
前端·css·vue.js
ZoeLandia14 分钟前
TypeScript 03:泛型与工具类型
前端·typescript
code_Bo16 分钟前
从策划到上线:我和 AI 一起做了个微信记账小程序
前端·ai编程·cursor
Shirley~~31 分钟前
Three.js加载Gltf模型并播放动画
前端·3d
Data analyse45638 分钟前
Session超时与浏览器休眠的计时校验
大数据·前端·数据库·数据分析
星始流年41 分钟前
AI 时代,软件程序员未来 10—15 年的职业前景
前端·后端·ai编程
猪猪拆迁队1 小时前
跨电脑复制共享-局域网直连踩坑
前端·后端·go
静默回滚1 小时前
逐帧处理视频的内存去哪了,我从看错读数查到没排队
前端
重庆穿山甲1 小时前
我们不做「看起来很聪明」的知识库:一套企业级 RAG 平台的 37 屏真机实录
前端