前言:
之前使用 setData ,一直都是作為給變量賦值,感覺比起vue給data中的變量的賦值還是有點麻煩的。
最近項目不太緊張,為了提高小程序的開發效率及提升小程序開發的能力,又重新的通讀了下小程序的開發文檔。發現 setData 還有一個非必填的參數 callback——setData引起的界面更新渲染完畢后的回調函數,通過這個回調函數,可以在更新data中的數據的時候,同步在回調函數中進行相應操作,這比更新數據和后續操作分開寫好多了。
Page.prototype.setData(Object data, Function callback):
字段 | 類型 | 必填 | 描述 | 最低版本 |
---|---|---|---|---|
data | Object | 是 | 這次要改變的數據 | |
callback | Function | 否 | setData引起的界面更新渲染完畢后的回調函數 | 1.5.0 |
其中 key
可以以數據路徑的形式給出,支持改變數組中的某一項或對象的某個屬性,如 array[2].message
,a.b.c.d
,並且不需要在 this.data 中預先定義。關於key以數據路徑的形式使用及callback回調函數的使用如下:
data: { leader: { name: "Pony.ma", age: 42 } }, ... changeData() { var self=this self.setData({ "leader.name": "jack.ma" }, function() { wx.showToast({ title: "團隊leader已經更改為:"+self.data.leader.name, icon: "none" }) }) },