首页
这是一个教你如何快速搭建个人网站信息的网站示例。
这是一个教你如何快速搭建个人网站信息的网站示例。
网站性能是用户体验的重要组成部分,研究表明,页面加载时间每增加1秒,转化率可能下降7%。
前端性能优化是提升页面加载速度、交互流畅度和用户体验的核心,以下是可落地、高收益的实用技巧,覆盖「加载阶段」「渲染阶段」「运行阶段」三大核心场景,附具体实现方法和避坑点:
一、加载阶段:减少资源体积 & 加快请求速度
JS/CSS:使用 Terser(JS)、cssnano(CSS)压缩,移除注释、空格、死代码;构建工具(Webpack/Vite)默认集成,只需开启生产模式压缩。
HTML:使用 html-minifier-terser 压缩,移除空白字符、内联脚本 /style 压缩。
格式转换:优先使用 WebP/AVIF(比 JPG/PNG 小 30%-50%),通过
尺寸适配:为不同设备提供不同尺寸图片(srcset + sizes),避免大屏图片在小屏加载浪费带宽:
压缩工具:使用 Squoosh(在线)、sharp(Node.js)压缩图片,保留视觉效果的同时降低体积。
使用 WOFF2 格式(比 TTF 小 30%),通过 font-display: swap 避免字体加载阻塞文本显示:
非首屏组件懒加载:通过 IntersectionObserver 监听元素是否进入视口,再加载组件 / 执行逻辑。
强缓存:设置 Cache-Control: max-age=31536000(长期缓存静态资源,如图片、字体),配合文件哈希(如 app.8f7d2.js),更新时修改哈希即可触发重新请求。
协商缓存:设置 ETag/Last-Modified,资源未变化时返回 304 Not Modified,避免重复下载。
预加载关键资源:rel="preload" 提前加载首屏必需资源(如核心 JS / 字体):
预连接第三方域名:rel="preconnect" 提前建立 TCP 连接,减少跨域请求延迟:
1. 避免频繁回流(重排)/ 重绘
批量操作 DOM:先将 DOM 脱离文档流(如 display: none),修改完成后再重新插入;或使用
避免频繁读取布局属性:如 offsetTop、clientWidth(读取会触发回流),可缓存到变量中。
使用 CSS3 硬件加速:对动画元素设置 transform: translateZ(0) 或 will-change: transform,让浏览器使用 GPU 渲染,避免回流。
避免不必要的响应式数据:使用 Object.freeze() 冻结静态数据,减少响应式开销。
合理使用 v-show/v-if:频繁切换用 v-show(仅切换 display),少切换用 v-if(销毁 / 重建)。
列表优化:使用 v-for + key(唯一 key),避免复用错误;大数据列表用虚拟列表(如 vue-virtual-scroller)。
减少重渲染:使用 React.memo(组件缓存)、useMemo/useCallback(数据 / 函数缓存)。
大数据渲染:使用虚拟列表(如 react-window),仅渲染视口内列表项。
Lighthouse:Chrome DevTools 内置,评估性能、可访问性、SEO 等,给出优化建议。
Chrome DevTools(Performance 面板):录制页面运行过程,分析长任务、回流、JS 执行耗时。
Web Vitals:监控核心指标(LCP - 最大内容绘制、FID - 首次输入延迟、CLS - 布局偏移),衡量真实用户体验。
这是一个教你如何快速搭建个人网站信息的网站示例。