1. 程式人生 > >小程式SetData同步還是非同步問題

小程式SetData同步還是非同步問題

小程式SetData同步還是非同步

剛進新公司不久,學了幾天小程式,由於之前是用React的,所以學起來相對輕鬆,但是也有許多不同,不明白的點.

問題
React中,this.setState是非同步的,改變state之後是不能立馬獲取到改變之後的值的.

this.setState({
    name:'zhang'
})
console.log(this.state.name);//不能立馬獲取到新的state值

小程式中:因為React的原因,所以以為小程式中也是不能立馬獲取到新的data值,但是…

this.setData({
    name:'zhang'
})
console.log(this
.data.name);//可以立馬獲取到新的data值

解答:
檢視小程式官方文件
這裡寫圖片描述

可以看到 setData函式是
1. 將資料從邏輯層傳送到檢視層是非同步
2. 改變this.data是同步
也就是說改變值是同步的,改變值之後渲染頁面是非同步的,
應該是為了提高效能,不可能改變一次資料渲染一次頁面,等所有data改變完之後一塊渲染頁面.
剛學習小程式不久,水平有限,希望批評與指正.