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>
相关推荐
szp20051 天前
为了在浏览器里跑多线程 ONNX 推理,我把自己的支付浮层弄挂了
前端·webassembly
kisshyshy1 天前
从 useRef 到 Web Worker:理解 React 可变对象与浏览器多线程
前端·javascript·react.js
fatcoder1 天前
玩转Nginx 04 — 反向代理:给 nginx 接上后端
前端·后端·nginx
Data_Journal1 天前
什么是 CAPTCHA,它是如何工作的?
java·大数据·服务器·前端·数据库
计算机魔术师1 天前
我看了这个更新,把原来的检索方案推翻了
前端
zhanghaha13141 天前
HTML系列教程:3_HTML 基础标签 — 标题、段落、超链接、图像
前端·html
李高钢1 天前
C# WPF Prism 进阶(二):区域(Region)与模块化(Module)
java·前端·数据库
xyphf_和派孔明1 天前
Vite 与 Webpack 对比及常见面试题
前端·webpack·vite
明月_清风1 天前
Pi Agent 深度解析:开源极简终端 AI 编码代理的终极指南
前端·后端·ai编程
fatcoder1 天前
玩转Nginx 03 — location 匹配规则:让不同的路径各回各家
前端·后端·nginx