一、啟動(dòng)性能優(yōu)化:
1、啟用分包加載,降低代碼包下載耗時(shí);
分包預(yù)加載,跳轉(zhuǎn)到分包頁(yè)面時(shí)需要下載分包才能進(jìn)入頁(yè)面,造成頁(yè)面切換的延遲。分包預(yù)加載可以在跳轉(zhuǎn)前預(yù)加載分包,解決頁(yè)面切換延遲;
2、代碼重構(gòu)和優(yōu)化:
通過(guò)代碼重構(gòu)刪除冗余代碼(組件復(fù)用,提取公共函數(shù));利用webpack的tree shaking特性;可以通過(guò)微信開(kāi)發(fā)者工具的代碼依賴(lài)分析,優(yōu)化代碼包的大小
3、控制代碼包內(nèi)圖片等資源
4、按需注入(app.js中全局配置)
{
"lazyCodeLoading": "requiredComponents"
}
通常情況下,在小程序啟動(dòng)時(shí),啟動(dòng)頁(yè)面所在分包和主包(獨(dú)立分包除外)的所有代碼,造成很多沒(méi)有使用的代碼注入到小程序運(yùn)行環(huán)境中,影響注入耗時(shí)和內(nèi)存占用。
按需注入配置后,小程序僅注入當(dāng)前頁(yè)面需要的自定義組件和頁(yè)面代碼,以降低小程序的啟動(dòng)時(shí)間和運(yùn)行時(shí)內(nèi)存。
二、頁(yè)面渲染優(yōu)化
1、首屏數(shù)據(jù)提前請(qǐng)求:小程序提供了【數(shù)據(jù)預(yù)拉取】功能,能夠在冷啟動(dòng)時(shí)通過(guò)微信后臺(tái)向服務(wù)器拉取業(yè)務(wù)數(shù)據(jù),減少了首屏渲染等待時(shí)間;
2、骨架屏 請(qǐng)求頁(yè)面數(shù)據(jù)時(shí)展示骨架屏頁(yè)面,提升用戶(hù)體驗(yàn)
三、運(yùn)行時(shí)性能優(yōu)化
1、setData用于小程序雙線程環(huán)境通信,是一個(gè)耗費(fèi)性能的操作;因此要避免頻繁setData和一次性setData大量數(shù)據(jù);
this.setData({
[`proTabsDatas.${eleIndex}`]: floor, // 直接修改數(shù)組單個(gè)元素
'fourth.coverShow': false //修改對(duì)象單個(gè)屬性
})
參考:https://developers.weixin.qq.com/miniprogram/dev/framework/performance/tips.html