1.A頁面點擊跳轉到B頁面,在B頁面操作后A頁面應該發生變化,但是實際上我們點擊返回的時候我們發現並沒有刷新,通過小程序的生命周期函數由onLoad(頁面加載)、onReady(頁面初次渲染完成)、onShow(頁面顯示)、onHide(頁面隱藏)、onUnload(頁面卸載)五個周期構成。
問題:如果在onShow中執行this.onLoad(),會導致頁面第一次加載的時候數組加載兩次!
原因:頁面加載先執行onLoad,再執行的onShow,就會出現在onLoad加載一次數據,在onShow中執行this.onLoad()在加載一次數據。
解決方案:將不需要刷新的數據放在onLoad中執行,將需要刷新的數據放在onShow中執行!
2.對於組件的生命周期沒有onLoad()、onShow()生命周期的頁面,怎么對帶有組件頁面的進行頁面刷新操作?
點擊A頁面(帶有組件),進入B頁面,在B頁面操作完成后,同樣回退到A頁面時,我們對A頁面的數據進行刷新操作。
組件:
HTML:
<custom-component> <view wx:for="{{list}}"> {{item}} </view> </custom-component>
JS:
Component({
data: {
list: []
},
ready: function() {
this.getData();
console.log('ready')
},
methods: {
getData() {
console.log("刷新數據")
var num = Math.floor(Math.random() * 10 + 1);
this.setData({
list: num
})
}
}
})