在小程序中所有頁(yè)面的路由全部由框架進(jìn)行管理。
一:頁(yè)面棧
? ??框架以棧的形式維護(hù)了當(dāng)前的所有頁(yè)面。 當(dāng)發(fā)生路由切換的時(shí)候,頁(yè)面棧的表現(xiàn)如下:
? ??????路由方式? ? ? ? ? 頁(yè)面棧表現(xiàn)
? ??????初始化? ? ? ? ? ? ? 新頁(yè)面入棧
????????打開新頁(yè)? ? ? ? ? 面新頁(yè)面入棧
????????頁(yè)面重定向? ? ? 當(dāng)前頁(yè)面出棧,新頁(yè)面入棧
????????頁(yè)面返回? ? ? ? ? 頁(yè)面不斷出棧,直到目標(biāo)返回頁(yè),新頁(yè)面入棧
????????Tab 切換? ? ? ? ? ?頁(yè)面全部出棧,只留下新的 Tab 頁(yè)面
????????重加載? ? ? ? ? ? ? 頁(yè)面全部出棧,只留下新的頁(yè)面
? ? 頁(yè)面棧使用:getCurrentPages()
? ? 1.getCurrentPages() 函數(shù)用于獲取當(dāng)前頁(yè)面棧的實(shí)例,以數(shù)組形式按棧的順序給出,
????????第一個(gè)元素為首頁(yè),最后一個(gè)元素為當(dāng)前頁(yè)面。
? ? 2.Tip:不要嘗試修改頁(yè)面棧,會(huì)導(dǎo)致路由以及頁(yè)面狀態(tài)錯(cuò)誤。
二:路由方式
? ??對(duì)于路由的觸發(fā)方式以及頁(yè)面生命周期函數(shù)如下:
? ??????路由方式? ? ? ? ?觸發(fā)時(shí)機(jī)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?路由前頁(yè)面? ? ? ? ? ? ? 路由后頁(yè)面
? ??????初始化? ? ? ? ? ? ?小程序打開的第一個(gè)頁(yè)面? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?onLoad, onShow
????????打開新頁(yè)面? ? ?調(diào)用 API wx.navigateTo 或使用組件? ? ? ? ? ?onHide? ? ? ? ? ? ? ? ? ? onLoad, onShow
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <navigator open-type="navigateTo"/>?
????????頁(yè)面重定向? ? ?調(diào)用 API wx.redirectTo 或使用組件? ? ? ? ? ? ?onUnload? ? ? ? ? ? ? ?onLoad, onShow
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <navigator open-type="redirectTo"/>?
????????頁(yè)面返回? ? ? ? ?調(diào)用 API wx.navigateBack 或使用組件? ? ? ??onUnload? ? ? ? ? ? ? ?onShow
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <navigator open-type="navigateBack">
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 或用戶按左上角返回按鈕??
????????Tab 切換? ? ? ? ?調(diào)用 API wx.switchTab 或使用組件? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?各種情況參考下表
????????????????????????????????<navigator open-type="switchTab"/>
????????????????????????????????或用戶切換 Tab???? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
????????重啟動(dòng)? ? ? ? ? ? 調(diào)用 API wx.reLaunch 或使用組件
????????????????????????????????<navigator open-type="reLaunch"/>? ? ? ? ? ? onUnload? ? ? ? ? ? ?onLoad, onShow
? ? 對(duì)于上表中的Tab切換的各種情況
????對(duì)應(yīng)的生命周期(理解環(huán)境為底部的tabBar操作哦)
(以 A、B 頁(yè)面為 Tabbar 頁(yè)面,C 是從 A 頁(yè)面打開的頁(yè)面,D 頁(yè)面是從 C 頁(yè)面打開的頁(yè)面為例)
????當(dāng)前頁(yè)面? ? ? ? ? ? ? ? ? 路由后頁(yè)面? ? ? ? ? ? ? ? ? ? ? ?觸發(fā)的生命周期(按順序)????
????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(從轉(zhuǎn)發(fā)進(jìn)入)? ?A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?D.onUnload(), A.onLoad(), A.onShow()
????D(從轉(zhuǎn)發(fā)進(jìn)入)? ?B? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?D.onUnload(), B.onLoad(), B.onShow()
注意:
? ? 1.navigateTo, redirectTo 只能打開非 tabBar 頁(yè)面,url頁(yè)面路徑只能使用相對(duì)路徑。。
? ? 2.switchTab 只能打開 tabBar 頁(yè)面。
? ? 3.reLaunch 可以打開任意頁(yè)面。
? ? 4.頁(yè)面底部的 tabBar 由頁(yè)面決定,即只要是定義為 tabBar 的頁(yè)面,底部都有 tabBar。
? ? 5.調(diào)用頁(yè)面路由帶的參數(shù)可以在目標(biāo)頁(yè)面的onLoad中獲取。
? ? 6.
第七節(jié):頁(yè)面路由(頁(yè)面跳轉(zhuǎn))
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 前言: 上一篇文章我們介紹了.wxml和.wxss文件,這篇文章對(duì)js文件進(jìn)行詳細(xì)的講解,首先貼上一個(gè)簡(jiǎn)單的js文...
- 小程序?qū)W習(xí)(四)之邏輯層(主要說(shuō)的是對(duì)應(yīng)的js文件) 本節(jié)知識(shí)點(diǎn): 注冊(cè)小程序 場(chǎng)景值 注冊(cè)頁(yè)面 路由 模塊化 A...
- 配置文件 app.json的配置(全局) {// 用來(lái)配置頁(yè)面的路徑"pages":["pages/index/i...
- 邵音音,本名倪小雁,1950年出生于香港,2005年開始擔(dān)任香港演藝人協(xié)會(huì)名譽(yù)理事。1972年邵音音正式進(jìn)入娛樂(lè)圈...
- 我認(rèn)識(shí)一個(gè)人,他十九歲時(shí)深愛(ài)過(guò)、 在三個(gè)月里深愛(ài)過(guò)一個(gè)女人, 但那是一種不可能的愛(ài), 一種一日天堂十日地獄的愛(ài)。 ...