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>
相关推荐
佛系打工仔10 小时前
绘制K线第二章:背景网格绘制
android·前端·架构
计算机毕设VX:Fegn089511 小时前
计算机毕业设计|基于springboot + vue医院设备管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
明天好,会的12 小时前
分形生成实验(五):人机协同破局--30万token揭示Actix-web状态管理的微妙边界
运维·服务器·前端
C_心欲无痕12 小时前
nginx - alias 和 root 的区别详解
运维·前端·nginx
北辰alk12 小时前
Vue 路由信息获取全攻略:8 种方法深度解析
vue.js
北辰alk12 小时前
Vue 三剑客:组件、插件、插槽的深度辨析
vue.js
北辰alk12 小时前
Vue Watch 立即执行:5 种初始化调用方案全解析
vue.js
北辰alk12 小时前
Vue 组件模板的 7 种定义方式:从基础到高级的完整指南
vue.js
北辰alk13 小时前
深入理解 Vue 生命周期:created 与 mounted 的核心差异与实战指南
vue.js