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>
相关推荐
陈林梓几秒前
Qiankun 微前端配置详解
前端
英俊潇洒美少年5 分钟前
Vue3 的 JSX 函数组件,每次更新都会重新运行吗?
前端·javascript·vue.js
木斯佳6 分钟前
前端八股文面经大全:腾讯前端暑期AI面(2026-03-26)·面经深度解析
前端·人工智能·ai·智能体·暑期实习
invicinble11 分钟前
对于一个基本的前端后台管理框架的分析和认识
前端
恋猫de小郭11 分钟前
Android 17 新适配要求,各大权限进一步收紧,适配难度提升
android·前端·flutter
高桥凉介发量惊人15 分钟前
UI 与交互篇 (3/6):动画体系:隐式动画到自定义动画
前端
cyforkk17 分钟前
前端架构实战:当服务器关闭时,如何优雅提示 502 错误?
服务器·前端·架构
高桥凉介发量惊人22 分钟前
UI 与交互篇(1/6):组件化思路:从页面复制到可复用组件
前端
kyriewen22 分钟前
Generator 函数:那个能“暂停”的函数,到底有什么用?
前端·javascript·面试
进击的尘埃22 分钟前
驾驭Skill市场:从3000+技能包中筛出真正能打的20个
javascript