W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
小程序通過Page提供的setData方法去綁定數(shù)據(jù),如:
this.setData({title: 'this is title'});
因為小程序架構(gòu)本身原因,頁面渲染層和JS邏輯層分開的,setData操作實際就是JS邏輯層與頁面渲染層之間的通信,那么如果在同一次運行周期內(nèi)多次執(zhí)行setData操作時,那么通信的次數(shù)是一次還是多次呢?這個取決于API本身的設(shè)計。
wepy使用臟數(shù)據(jù)檢查對setData進行封裝,在函數(shù)運行周期結(jié)束時執(zhí)行臟數(shù)據(jù)檢查,一來可以不用關(guān)心頁面多次setData是否會有性能上的問題,二來可以更加簡潔去修改數(shù)據(jù)實現(xiàn)綁定,不用重復去寫setData方法。代碼如下:
this.title = 'this is title';
但需注意,在函數(shù)運行周期之外的函數(shù)里去修改數(shù)據(jù)需要手動調(diào)用$apply方法。如:
setTimeout(() => {
this.title = 'this is title';
this.$apply();
}, 3000);
在執(zhí)行臟數(shù)據(jù)檢查是,會通過this.$$phase標識當前檢查狀態(tài),并且會保證在并發(fā)的流程當中,只會有一個臟數(shù)據(jù)檢查流程在運行,以下是執(zhí)行臟數(shù)據(jù)檢查的流程圖:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: