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>
相关推荐
触底反弹2 分钟前
🔥 别再只用 useRef 拿 DOM 了!这 5 个实战场景让你彻底理解它(附源码解析 + 面试题)
前端·javascript·react.js
小锋java12342 分钟前
【技术专题】Vue3 - 列表渲染
vue.js·vite
玉宇夕落3 分钟前
useRef + Web Worker —— 从零到一理解React多线程协作原理
前端
用户6919026813393 分钟前
React useRef、useEffect、useState 与 Web Worker 多线程实践
前端
BreezeJiang4 分钟前
Web Worker 不负责渲染:React 中的线程分工与消息闭环
javascript·react.js
烬羽4 分钟前
useContext 用是用了,但你真的用对了吗?——把 Context 封装进自定义 Hook
前端·react.js·全栈
做前端的娜娜子5 分钟前
JavaScript 闭包
前端·javascript·掘金·金石计划
xiaominlaopodaren5 分钟前
three.js地图数学基础(一)
前端·three.js
何时梦醒6 分钟前
🎯 从零彻底搞懂 React Context API —— 一篇带你穿越"组件树"的状态共享方案
前端·javascript·react.js
渣波6 分钟前
拒绝页面假死!React 并发编程实战:Web Worker + useRef 深度解析与高性能计算架构
前端·javascript