













如题,使用Qoder实现0代码重构vue2到vue3,项目成功启动,页面及功能正常后继续对项目页面加载速度进行优化,以下是所有已完成的优化项总结:
| 优化项 | 配置内容 | 效果 |
|---|---|---|
| 代码分割 | manualChunks 分离 vue-vendor、vant、utils、qrcode |
减少首屏加载,按需加载 |
| Terser 压缩 | 移除 console/debugger,压缩变量名 | 代码体积更小 |
| CSS 代码分割 | cssCodeSplit: true |
按页面加载 CSS |
| 资源内联 | assetsInlineLimit: 4096 |
小资源转为 base64 |
| 资源分类 | JS/CSS/IMG/FONTS 分类存放 | 便于缓存管理 |
.gz 文件.br 文件// 预加载函数 - 延迟 2 秒后预加载常用页面
const preloadComponent = (component) => {
setTimeout(() => {
import('../views/My.vue')
import('../views/MyOrder.vue')
}, 2000)
return component
}
<!-- 商品列表图片 -->
<img v-lazy="imageUrl" :src="imageUrl" loading="lazy" />
| 优化项 | 实现方式 |
|---|---|
| DNS 预解析 | <link rel="dns-prefetch"> |
| 预连接 | <link rel="preconnect"> |
| 关键 CSS 内联 | 首屏样式直接写入 <style> |
| 异步加载脚本 | 神策 SDK 添加 async defer |
// 优化前
import 'vant/lib/index.css' // 全部样式
// 优化后 - 按需引入
import 'vant/es/loading/style'
import 'vant/es/toast/style'
import 'vant/es/dialog/style'
// ... 仅引入使用到的组件样式
isLoading 控制显示/隐藏sa-sdk-javascript(改用 CDN)optimizeDeps 预构建配置| 指标 | 优化前 | 优化后 |
|---|---|---|
| 首屏 CSS | ~240KB | ~11KB (gzip: 2.3KB) |
| Vant 样式 | 全部引入 | 按需引入,减少 ~100KB |
| 传输体积 | 原始大小 | 减少 60-70% |
| 首屏体验 | 白屏等待 | 骨架屏即时反馈 |
| 页面切换 | 重新加载 | 预加载,秒开 |
dist/
├── index.html (6.4KB)
├── static/
│ ├── js/ # 代码分割后的 JS (vue-vendor、vant、utils、qrcode)
│ ├── css/ # 按页面分割的 CSS
│ └── img/ # 图片资源
└── *.gz / *.br # Gzip/Brotli 压缩文件
所有优化已完成,项目已启动在 http://127.0.0.1:3000/
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。