wepy 數(shù)據(jù)綁定

2018-06-17 15:58 更新

小程序數(shù)據(jù)綁定方式

小程序通過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ù)綁定方式

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);

wepy臟數(shù)據(jù)檢查流程

在執(zhí)行臟數(shù)據(jù)檢查是,會通過this.$$phase標識當前檢查狀態(tài),并且會保證在并發(fā)的流程當中,只會有一個臟數(shù)據(jù)檢查流程在運行,以下是執(zhí)行臟數(shù)據(jù)檢查的流程圖:


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號