微信小程序是個(gè)很不錯(cuò)的東西,但是在開發(fā)微信小程序的時(shí)候,總是會(huì)遇到一些特殊的問題,其中navigator導(dǎo)航算是一個(gè)對剛接觸小程序開發(fā)的程序員來說應(yīng)該算是個(gè)比較深的坑了吧。
雖然有微信提供的文檔接口和開發(fā)者工具,完成起來總是感覺那么暢快,但是在手機(jī)上預(yù)覽后,總是會(huì)有這樣那樣的問題:(附上官方文檔)
navigator的open-type屬性 可選值 'navigate'、'redirect'、'switchTab',對應(yīng)于wx.navigateTo、wx.redirectTo、wx.switchTab的功能
open-type="navigate"等價(jià)于API的 wx.navigateTo 而wx.navigateTo的url是需要跳轉(zhuǎn)的應(yīng)用內(nèi)非 tabBar 的頁面的路徑
open-type="redirect"等價(jià)于API的 wx.redirectTo 而wx.redirectTo的url是需要跳轉(zhuǎn)的應(yīng)用內(nèi)非 tabBar 的頁面的路徑
open-type="switchTab"等價(jià)于API的 wx.switchTab而wx.switchTab的url是需要跳轉(zhuǎn)到 tabBar 頁面,并關(guān)閉其他所有非 tabBar 頁面
最后一個(gè)switchTab事件觸發(fā)以后 把前面的頁面都關(guān)閉了
//跳轉(zhuǎn)到 tabBar 頁面,并關(guān)閉其他所有非 tabBar 頁面 // url 需要跳轉(zhuǎn)的 tabBar 頁面的路徑(需在 app.json 的 tabBar 字段定義的頁面),路徑后不能帶參數(shù) wx.switchTab({url:'index/index'})//關(guān)閉所有頁面,打開到應(yīng)用內(nèi)的某個(gè)頁面。 // url 需要跳轉(zhuǎn)的應(yīng)用內(nèi)頁面路徑 , 路徑后可以帶參數(shù)。參數(shù)與路徑之間使用?分隔,參頁面 數(shù)鍵與參數(shù)值用=相連,不同參數(shù)用&分隔;如 'path?key=value&key2=value2',如果跳轉(zhuǎn)的頁面路徑是 tabBar 頁面則不能帶參數(shù) wx.reLaunch({url:'test?id=1'}) //關(guān)閉當(dāng)前頁面,返回上一頁面或多級頁面。可通過 getCurrentPages()) 獲取當(dāng)前的頁面棧,決定需要返回幾層。 wx.navigateBack({delte:1})//返回上一個(gè)頁面 //保留當(dāng)前頁面,跳轉(zhuǎn)到應(yīng)用內(nèi)的某個(gè)頁面,使用wx.navigateBack可以返回到原頁面 wx.navigateTo({url:'test?id=2'}) // 關(guān)閉當(dāng)前頁面,跳轉(zhuǎn)到應(yīng)用內(nèi)的某個(gè)頁 面。 wx.redirectTo(OBJECT) 注: navigateTo, redirectTo 只能打開非 tabBar 頁面。 switchTab 只能打開 tabBar 頁面。 reLaunch 可以打開任意頁面。 頁面底部的 tabBar 由頁面決定,即只要是定義為 tabBar 的頁面,底部都有 tabBar。 調(diào)用頁面路由帶的參數(shù)可以在目標(biāo)頁面的onLoad中獲取。