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>
相关推荐
前端炒粉17 小时前
个人简历面经总结二
前端·网络·vue.js·react.js·面试
binbin_5218 小时前
UIAbility 与 WindowStage:窗口创建、加载、销毁的完整链路
开发语言·javascript·深度学习·华为·harmonyos
用户0595401744618 小时前
用了半年 LangChain Memory,才发现回滚测试压根没测对
前端·css
木木的木云18 小时前
从零构建微前端框架:PavilionMfe 设计揭秘
前端·架构·vite
weedsfly18 小时前
Cookie 安全三属性:HttpOnly、Secure、SameSite 分别防什么?
前端·javascript·面试
IT_陈寒18 小时前
SpringBoot自动配置没生效?你可能漏了这个注解
前端·人工智能·后端
monologues18 小时前
Vue3 底层原理深度解析:从编译到运行的源码之旅
前端
前端炒粉18 小时前
马克思主义基本原理在Vue框架中的指导作用探析
前端·javascript·vue.js
happyprince18 小时前
12-vLLM 量化方案全面分析
前端·javascript·vllm
必胜刻18 小时前
从零搭建全栈博客系统:Go + Vue 3 + Docker 全流程实战
vue.js·docker·golang