阶段 | 优化目标 |
---|---|
加载阶段 | 首屏速度、资源压缩、请求优化 |
渲染阶段 | 减少回流重绘、避免布局抖动 |
交互阶段 | 保持高帧率、避免卡顿 |
持久运行阶段 | 内存泄露处理、缓存命中策略 |
资源体积优化
合理拆包(Code Splitting)
使用 Webpack/Vite 动态导入:
const LazyPage = React.lazy(() => import('./Page'))
懒加载
![]()
HTTP 请求优化
首屏优先
避免频繁回流(Reflow)和重绘(Repaint)
className
而非逐个属性;requestAnimationFrame
代替 setTimeout
调整样式;使用合适的布局方案
flex
、grid
,避免复杂嵌套 table 或 float;box-shadow
、filter
等高开销属性;虚拟滚动(Virtual Scrolling)
react-window
、vue-virtual-scroller
图片优化
合适的事件节流/防抖
const onScroll = debounce(() => { ... }, 200)
重任务异步化
Web Worker
拆分计算;requestIdleCallback
)骨架屏/加载占位
性能监控
PerformanceObserver
或第三方工具(Lighthouse、Web Vitals)监测交互流畅性(FID、INP)setInterval
/ eventListener
/ observer
等全局副作用WeakMap
/ WeakRef
管理缓存数据内容类型 | 推荐策略 |
---|---|
静态资源 | Cache-Control: max-age, immutable |
HTML 文档 | no-cache + ETag |
请求接口 | 本地缓存(localStorage + version) |
splitChunks
拆包公共依赖;DefinePlugin
删除 dead code;esbuild
/ SWC
替代 babel 提升构建性能;答(要素):
答:
使用 Chrome DevTools → Performance 查看卡顿帧;
常见原因:
优化方案:拆分异步任务、虚拟滚动、debounce 事件、WebWorker;
前端性能优化不只是“提速”,而是提升用户体验的系统性工作。它要求你具备前后加载机制、渲染流程、JS 执行模型、资源调度策略等多个层次的理解能力。
掌握并能实践上述优化流程,将让你从“工程执行者”晋升为“体验设计者”。