优化
减少包体积
合理使用分包
使用分包加载是优化小程序启动耗时效果最明显的手段。建议开发者按照功能划分,将小程序的功能按使用频率和场景拆分成分包,实现代码包的按需加载。同时需要注意控制分包数量,避免过多拆包。
移除无用文件
目前小程序打包是会将工程下所有文件都打入代码包内,在开发迭代过程中,如果不及时清理无用的资源,会使得包体积越来越大,开发过程中要养成良好的习惯 -- 及时清理没有使用到的资源,防止资源冗余。控制包内静态资源
避免在代码包中包含或在 tss 中内联过多、过大的代码包内的图片,应尽量采用网络图片。代码包内的图片一般应只包含一些体积较小的图标。声音、视频笑应尽量避免放到代码包中
减少 同步逻辑
优先使用异步 API
在小程序启动流程中、会注入开发者代码并顺序同步执行 App.onLaunch, App.onShow, Page.onLoad,Page.onShow。
在小程序初始化代码(Page, App 定义之外的内容)和启动相关的几个生命周期中,应避免过度使用 Sync 结尾的同步 API 避免启动时运行过多同步代码在小程序初始化代码(Page,App 定义之外的内容)和启动相关的几个生命周期中,应避免执行复杂的计算逻辑。
更早的展示首屏数据尽早调用关键 API 和请求
首屏绘制可能会依赖 API 数据和网络请求,尽早的调用相关 AP!,发送相关网络请求,能提前数据准备时间。接入数据预取
大部分小程序在渲染首页时、需要依赖服务端的接口数据、小程序为开发者提供了数据预取,方便开发者在小程序冷启动时提前发起请求,并缓存请求内赛
避免非必要的 reLaunchreLaunch 会先关闭所有页面,非必要的 reLaunch 会导致首页白屏时间明显增长。
合理缓存数据
网络数据缓存 小程序提供了 t.getStorage、t.setStorage 等读写本地缓存的能力,数据存储在本地,返回的会比网络请求快。如果开发者基于某些原因无法采用数据预拉取,我们推荐优先从缓存中获取数据来渲染视图,等待网络请求返回后进行更新。
API 数据缓存对调用频次高的方法的结果进行缓存,例如对于 tt.getSystemlnfo,tt.getSysteminfoSync 的结果应进行缓存,避免重复调用
图片优化
选择合适的图片格式 对于不需要透明格式的图片,推荐采用 ipeg 格式来代替 png 格式。如果有条件,尽可能使用 webp 格式图片,能大幅缩小图片体积。
进行合理的压缩 图片尽可能压缩到 200kb 以下,压缩的同时也需要兼顾图片的质量使用 CDN 并开启缓存使用 CDN,能大幅减少图片资源的下载速度。开启 HTTP 缓存控制后,下一次加载同样的图片,会直接从缓存读取,大大提升图片加载速度。 2.6 更多优化手段 框架骨架屏 通过小程序框架提供骨架屏机制,能比业务中创建的骨架屏加载时机更靠前,使用这一机制,可以减少用户的白屏等待时长,给用户带来更好的体验。占位组件 为自定义组件配置占位组件,可以指定该组件不在小程序启动时立即注入,而是等到页面中其他元素渲染完成后才注入。通过占位组件,能减少启动耗时
运行时性能体验
合理使用 setData
减少发送频率 动画不使用 setData