天天看點

微信小程式 onLoad() 什麼時候會調用?

按官方文檔解釋,onLoad() 應該在第一次顯示頁面的時候調用,以後再次切換到該頁面時,不會再調用這個函數。如下圖:

微信小程式 onLoad() 什麼時候會調用?

實際調試中,進入一個頁面時,我發現頁面的 onLoad() 函數有時有調用,有時沒有。原因在下面的解釋中:

onLoad: 頁面加載。

一個頁面隻會調用一次。

參數可以擷取wx.navigateTo和wx.redirectTo及中的 query。

onShow: 頁面顯示

每次打開頁面都會調用一次。

onReady: 頁面初次渲染完成

一個頁面隻會調用一次,代表頁面已經準備妥當,可以和視圖層進行互動。

對界面的設定如wx.setNavigationBarTitle請在onReady之後設定。詳見生命周期

onHide: 頁面隐藏

當navigateTo或底部tab切換時調用。

onUnload: 頁面解除安裝

當redirectTo或navigateBack的時候調用。

是以,隻要是使用了 redirectTo() 或 navigateBack(),再次進入頁面就會調用 onLoad()。

舉個例子,内容詳情頁面,如果除了系統預設的左上角的 < 傳回,沒有提供更多的操作,使用者每次離開詳情頁面唯有點選左上角的傳回,必然調用 navigateBack(), 是以在這種情況下,使用者每次進入詳情頁面都要執行 onLoad()。