我们的后台管理系统首屏加载时间长达 4 秒,Lighthouse 评分仅为 30 分。主要的性能瓶颈在于:
在 Vue Router 中,不要一次性引入所有组件:
// 优化前
import UserDashboard from './views/UserDashboard.vue';
// 优化后
const UserDashboard = () => import('./views/UserDashboard.vue');
这样 Webpack 会将每个路由页面打包成独立的 chunk,按需加载。
使用 WebP 格式代替 PNG/JPG,并开启懒加载:
<img src="placeholder.jpg" data-src="real-image.webp" loading="lazy" />
在 Nginx 配置中开启 gzip:
gzip on;
gzip_types text/plain application/json application/javascript text/css;
经过上述调整,Vendor.js 减少至 300KB,首屏 FCP (First Contentful Paint) 降至 0.8 秒,Lighthouse 评分提升至 95 分。