微信小程式 onLoad() 什麼時候會呼叫?
阿新 • • 發佈:2019-01-07
按官方文件解釋,onLoad() 應該在第一次顯示頁面的時候呼叫,以後再次切換到該頁面時,不會再呼叫這個函式。如下圖:
實際除錯中,進入一個頁面時,我發現頁面的 onLoad() 函式有時有呼叫,有時沒有。原因在下面的解釋中:
onLoad: 頁面載入。
一個頁面只會呼叫一次。
引數可以獲取wx.navigateTo和wx.redirectTo及中的 query。onShow: 頁面顯示
每次開啟頁面都會呼叫一次。onReady: 頁面初次渲染完成
一個頁面只會呼叫一次,代表頁面已經準備妥當,可以和檢視層進行互動。
對介面的設定如wx.setNavigationBarTitle請在onReady之後設定。詳見生命週期onHide: 頁面隱藏
當navigateTo或底部tab切換時呼叫。onUnload: 頁面解除安裝
當redirectTo或navigateBack的時候呼叫。
因此,只要是使用了 redirectTo() 或 navigateBack(),再次進入頁面就會呼叫 onLoad()。
舉個例子,內容詳情頁面,如果除了系統預設的左上角的 < 返回,沒有提供更多的操作,使用者每次離開詳情頁面唯有點選左上角的返回,必然呼叫 navigateBack(), 因此在這種情況下,使用者每次進入詳情頁面都要執行 onLoad()。