因爲VUE等框架,咱們在邏輯層修改data中的數據後,視圖層(頁面渲染)會跟着發生變化。固然微信小程序也是實現了相同的功能,那麼出現錯誤的緣由是什麼?答案:微信小程序的setData()方法。html
Page({
data: { isShow: false },
changeStatus(){
console.log(this.data.isShow);
this.data.isShow = true;
console.log(this.data.isShow);
}
})
從上邊代碼和效果圖咱們能夠看出:一、習慣的賦值方式「=」在邏輯層是起到了做用改變了isShow;二、視圖層的並無發生變化。
結論就是常規的「=」賦值方式,在微信小程序中只能改變data中的數據,而不能改變視圖層的數據,那麼微信小程序怎麼解決這個問題的,setData()方法。前端
setData 函數用於將數據從邏輯層發送到視圖層(異步),同時改變對應的 this.data 的值(同步)。git
Page({
data: {
isShow: false,
isShow1: false
},
changeStatus(){
console.log(this.data.isShow);
this.data.isShow = true;
console.log(this.data.isShow);
},
changeStatus1() {
console.log(this.data.isShow);
this.setData({ isShow:true});
console.log(this.data.isShow);
}
})
個人博客,歡迎交流!github
微信小程序專欄小程序
前端筆記專欄微信小程序