- 盡量減少不必要的https請求,可使用 getStorageSync() 及 setStorageSync() 方法將數(shù)據(jù)存儲在本地
- 避免將未綁定在 WXML 的變量傳入 setData: setData操作會引起框架處理一些渲染界面相關(guān)的工作, 一個未綁定的變量意味著與界面渲染無關(guān),傳入setData會造成不必要的性能消耗。愛掏網(wǎng) - it200.com如數(shù)據(jù)需要在當(dāng)前頁面共享,可采用定義全局變量的方式(如使用this.)。愛掏網(wǎng) - it200.com
- 避免每次 setData 都傳遞大量新數(shù)據(jù): 導(dǎo)致js編譯過程變慢,例如在改變data中某個數(shù)組的某個數(shù)據(jù)項(xiàng)是,在setData是可采用只更改某個數(shù)據(jù)項(xiàng)。愛掏網(wǎng) - it200.com列表數(shù)據(jù)量過大時,也可采用分步渲染加載的方法。愛掏網(wǎng) - it200.com
/**
* 分步添加列表數(shù)據(jù)
* @param {*} lists 列表數(shù)據(jù)
* @param {*} name data中字段name
* @param {*} step 每步多少條
* @param {*} interval 間隔時間
*/
stepPushList({ lists, name, step = 10, interval = 300, reset = false }) {
this._clearBaseStepPushTimer();
if (!lists || !name || !Array.isArray(lists)) return;
if (lists.length {
if (newLists.length {
this.stepPushList({ lists: newLists, name, step, interval });
}, interval || 300)
}
});
},
// 清理分步定時器
_clearBaseStepPushTimer() {
this._baseStepPushTimer && clearTimeout(this._baseStepPushTimer);
this._baseStepPushTimer = null;
},
- 不能頻繁調(diào)用setData(甚至一個函數(shù)里面不能調(diào)用兩個setData函數(shù)): 滑動時會感覺到卡頓,操作反饋延遲嚴(yán)重, 因?yàn)?JS 線程一直在編譯執(zhí)行渲染,不能及時將用戶操作事件傳遞到邏輯層,邏輯層亦無法及時將操作處理結(jié)果及時傳遞到視圖層。愛掏網(wǎng) - it200.com
- 避免使用:active偽類來實(shí)現(xiàn)點(diǎn)擊態(tài),建議使用小程序內(nèi)置組件的 'hover-class' 屬性來實(shí)現(xiàn)。愛掏網(wǎng) - it200.com
- 避免使用.獲取對象的深層屬性,容易造成微信告警,可使用對象結(jié)構(gòu)默認(rèn)賦值,增加代碼嚴(yán)謹(jǐn)性,不然小程序助手會告警報錯。愛掏網(wǎng) - it200.com
- 避免頁面節(jié)點(diǎn)嵌套過深,增加頁面渲染壓力
- 頁面退出之前銷毀定時器,可在onUnLoad生命周期鉤子函數(shù)中執(zhí)行
聲明:所有內(nèi)容來自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準(zhǔn)確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。