在學(xué)習(xí)小程序開發(fā)中,經(jīng)常會用到類似tabbar一樣的頁面切換 開始沒有區(qū)分navigatorTo和redirectTo的區(qū)別粟按,導(dǎo)致頁面跳轉(zhuǎn)幾次就會出點點擊不了的情況掏父。
其實問題出現(xiàn)在小程序頁面棧的控制上,navigator 是跳轉(zhuǎn)到新的頁面 redirect是還在原來的頁面跳轉(zhuǎn)
image.png
小程序的所有頁面路由全部由框架進(jìn)行管理的
路由方式
對于路由的觸發(fā)方式
初始化 小程序打開第一個頁面
打開新的頁面 調(diào)用API wx.navigator
使用組件 <navigator open-type="navigatorTo" /> (新頁面入棧)
頁面重定向 調(diào)用API wx.redirectTo
使用組件 <navigator open-type="redirectTo" />(當(dāng)前頁面出棧穿扳,新頁面入棧)
頁面返回 調(diào)用API wx.navigateBack
使用組件 <navigator open-type="navigateBack" /> (頁面不斷出棧谱姓,直到目標(biāo)返回頁)
Tab切換 調(diào)用API wx.switchTab
使用組件 <navigator open-type="switchTab" /> 用戶切換Tab(全部出棧借尿,只留下新的Tab頁面)
1、navigateTo, redirectTo 只能打開非 tabBar 頁面屉来。
2路翻、switchTab 只能打開 tabBar 頁面。
3茄靠、reLaunch 可以打開任意頁面茂契。
4、頁面底部的 tabBar 由頁面決定慨绳,即只要是定義為 tabBar 的頁面账嚎,底部都有 tabBar莫瞬。
5、調(diào)用頁面路由帶的參數(shù)可以在目標(biāo)頁面的onLoad中獲取郭蕉。