爲何wepy的數據沒法渲染到實例裏面去

爲啥明明WEPY是將數據渲染到視圖還會出這個問題呢?

由於只是相似於 Vue 框架,因此不能徹底實現數據渲染,尤爲當異步操做的時候。javascript

(1)WePy 普通數據綁定。java

WePY使用髒數據檢查對setData進行封裝,在函數運行週期結束時執行髒數據檢查,一來能夠不用關心頁面屢次setData是否會有性能上的問題,二來能夠更加簡潔去修改數據實現綁定,不用重複去寫setData方法。代碼以下:app

this.title = 'this is title';

(2)異步操做裏面框架

需注意的是,在異步函數中更新數據的時候,必須手動調用$apply方法,纔會觸發髒數據檢查流程的運行。如:異步

setTimeout(() => { this.title = 'this is title'; this.$apply(); }, 3000);
在函數運行週期以外的函數裏去修改數據須要手動調用$apply方法。全部的Promise的then,catch等方法,已是在Wepy的函數週期以外了,若是是在這些方法裏面設置屬性值,就必須調用$apply方法,若是是在子Component裏面就調用this.$parent.$apply()就好了
相關文章
相關標籤/搜索