24小時服務電話:17712205170 查看騰訊廣告代理商資質
  • 微信官網
    訪問微信官網
  • 小程序
    訪問小程序

什麼叫做小程序生命周期。它的路由機制是什麼

 
2019-09-05人氣:所屬分類:開發動态

生命周期

以下内容你不需要立馬完全弄明白,不過以後它會有幫助。

下圖說明了頁面 Page 實例的生命周期。

頁面路由
 
在小程序中所有頁面的路由全部由框架進行管理。
 
頁面棧
 
框架以棧的形式維護了當前的所有頁面。 當發生路由切換的時候,頁面棧的表現如下:
 
路由方式 頁面棧表現
初始化 新頁面入棧
打開新頁面 新頁面入棧
頁面重定向 當前頁面出棧,新頁面入棧
頁面返回 頁面不斷出棧,直到目标返回頁
Tab 切換 頁面全部出棧,隻留下新的 Tab 頁面
重加載 頁面全部出棧,隻留下新的頁面
開發者可以使用 getCurrentPages() 函數獲取當前頁面棧。
 
路由方式
 
對于路由的觸發方式以及頁面生命周期函數如下:
 
路由方式 觸發時機 路由前頁面 路由後頁面
初始化 小程序打開的第一個頁面 onLoad, onShow
打開新頁面 調用 API wx.navigateTo 
使用組件 <navigator open-type="navigateTo"/> onHide onLoad, onShow
頁面重定向 調用 API wx.redirectTo 
使用組件 <navigator open-type="redirectTo"/> onUnload onLoad, onShow
頁面返回 調用 API wx.navigateBack 
使用組件<navigator open-type="navigateBack">
用戶按左上角返回按鈕 onUnload onShow
Tab 切換 調用 API wx.switchTab 
使用組件 <navigator open-type="switchTab"/> 
用戶切換 Tab 各種情況請參考下表
重啟動 調用 API wx.reLaunch 
使用組件 <navigator open-type="reLaunch"/> onUnload onLoad, onShow
Tab 切換對應的生命周期(以 A、B 頁面為 Tabbar 頁面,C 是從 A 頁面打開的頁面,D 頁面是從 C 頁面打開的頁面為例):
 
當前頁面 路由後頁面 觸發的生命周期(按順序)
A A Nothing happend
A B A.onHide(), B.onLoad(), B.onShow()
A B(再次打開) A.onHide(), B.onShow()
C A C.onUnload(), A.onShow()
C B C.onUnload(), B.onLoad(), B.onShow()
D B D.onUnload(), C.onUnload(), B.onLoad(), B.onShow()
D(從轉發進入) A D.onUnload(), A.onLoad(), A.onShow()
D(從轉發進入) B D.onUnload(), B.onLoad(), B.onShow()
Tips:
 
navigateTo, redirectTo 隻能打開非 tabBar 頁面。
switchTab 隻能打開 tabBar 頁面。
reLaunch 可以打開任意頁面。
頁面底部的 tabBar 由頁面決定,即隻要是定義為 tabBar 的頁面,底部都有 tabBar。
調用頁面路由帶的參數可以在目标頁面的onLoad中獲取。