Install
openclaw skills install frontend-performanceAnalyzes frontend performance issues (LCP, FCP, CLS, bundle size) and suggests prioritized, practical optimizations for loading and runtime efficiency.
openclaw skills install frontend-performance围绕加载性能与运行性能,给出可落地的优化方案与优先级。
| 问题 | 常见原因 | 优化方向 |
|---|---|---|
| LCP 慢 | 大图、阻塞渲染、服务端慢 | 图片优化、优先关键资源、SSR/预取 |
| FCP 慢 | JS/CSS 阻塞、首屏依赖多 | 拆包、关键 CSS 内联、延迟非关键 |
| TTI 长 | 主线程长任务、大 bundle | 代码分割、懒加载、减少主线程工作 |
| 问题 | 常见原因 | 优化方向 |
|---|---|---|
| CLS 高 | 无尺寸图片/字体、动态插入内容 | 宽高比/尺寸、font-display、预留占位 |
| 滚动/操作卡顿 | 重排多、长任务、大列表 | 虚拟列表、防抖节流、requestAnimationFrame、减少 reflow |
| 问题 | 优化方向 |
|---|---|
| JS 体积大 | 按路由/按需拆包、tree-shaking、替换大依赖、分析 bundle |
| 图片大 | 格式(WebP/AVIF)、尺寸、懒加载、CDN |
| 请求多 | 合并、缓存策略、预连接/preload |
不要一上来就输出所有优化方向,先判断用户卡在哪:
| 用户描述 | 实际问题 | 第一步 |
|---|---|---|
| 「首屏慢」「白屏时间长」 | 加载性能 | 问:有没有 Lighthouse 数据?LCP 是多少?是 SSR 还是 CSR? |
| 「页面卡顿」「滚动不流畅」 | 运行时性能 | 问:卡顿发生在什么操作时?列表有多少条数据? |
| 「打包体积大」「bundle 太大」 | 资源体积 | 直接让用户跑 npx @next/bundle-analyzer 或 vite-bundle-visualizer,看大模块再说 |
| 「LCP/FCP 差」「Core Web Vitals 不达标」 | 具体指标 | 问:哪个指标?多少分?在哪个页面? |
| 没有数据,只是「感觉慢」 | 未量化 | 先让用户跑 Lighthouse,拿到数据再分析,不要凭感觉给优化建议 |
没有数据就不给优化方案——「感觉慢」可能是网络问题、可能是服务端问题、可能是前端问题,方向不同。
加载性能(LCP > 2.5s 或 FCP > 1.8s),按这个顺序排查:
<script> 没有 async/defer,<link> 阻塞)?运行时卡顿,按这个顺序排查:
bundle 体积,看分析报告:
每个方案必须说明:改动量、预期收益、风险。
按这个顺序推荐,不要把大改动放在前面:
快速见效(1 天内,低风险)
width/height 属性(修 CLS)font-display: swap(修 FCP)loading="lazy"<link rel="preload">中等改动(1-3 天,中等风险)
dynamic import)import { debounce } from 'lodash-es')大改动(需评估,高风险)
不要把大改动作为首选推荐,除非快速方案已经做完且效果不够。
每个优化做完后,告诉用户怎么验证效果:
## 性能优化报告
### 现状
- 指标或现象:…
- 主要瓶颈:…
### 优化方案(按优先级)
| 方案 | 收益 | 成本 | 优先级 |
|------|------|------|--------|
| 1. … | … | … | 高/中/低 |
| 2. … | … | … | … |
### 建议落地顺序
1. …
2. …
### 验证方式
- 优化后建议复测:Lighthouse、Performance、关键操作耗时
dynamic 懒加载、Image 组件、分析 next/bundle-analyzer