wx.navigateTo
用于保留當(dāng)前頁面摊聋、跳轉(zhuǎn)到應(yīng)用內(nèi)的某個(gè)頁面廊镜,使用 wx.navigateBack
可以返回到原頁面即碗。對(duì)于頁面不是特別多的小程序,通常推薦使用 wx.navigateTo
進(jìn)行跳轉(zhuǎn)搞疗, 以便返回原頁面嗓蘑,以提高加載速度。當(dāng)頁面特別多時(shí)匿乃,則不推薦使用桩皿。
wx.redirectTo
當(dāng)頁面過多時(shí),被保留頁面會(huì)擠占微信分配給小程序的內(nèi)存幢炸,或是達(dá)到微信所限制的 5 層頁面棧泄隔。這時(shí),我們應(yīng)該考慮選擇 wx.redirectTo
宛徊。 wx.redirectTo()
用于關(guān)閉當(dāng)前頁面佛嬉,跳轉(zhuǎn)到應(yīng)用內(nèi)的某個(gè)頁面逻澳。這樣的跳轉(zhuǎn),可以避免跳轉(zhuǎn)前頁面占據(jù)運(yùn)行內(nèi)存暖呕,但返回時(shí)頁面需要重新加載斜做,增加了返回頁面的顯示時(shí)間。
wx.reLaunch
wx.reLaunch()
與 wx.redirectTo()
的用途基本相同湾揽, 只是 wx.reLaunch()
先關(guān)閉了內(nèi)存中所有保留的頁面瓤逼,再跳轉(zhuǎn)到目標(biāo)頁面。
wx.switchTab
對(duì)于跳轉(zhuǎn)到 tab bar 的頁面钝腺,最好選擇 wx.switchTab()
抛姑,它會(huì)先關(guān)閉所有非 tab bar 的頁面。其次艳狐,也可以選擇 wx.reLaunch()
,它也能實(shí)現(xiàn)從非 tab bar 跳轉(zhuǎn)到 tab bar皿桑,或在 tab bar 間跳轉(zhuǎn)毫目,效果等同 wx.switchTab()
。使用其他跳轉(zhuǎn) API 來跳轉(zhuǎn)到 tab bar诲侮,則會(huì)跳轉(zhuǎn)失敗镀虐。
wx.navigateBack
用于關(guān)閉當(dāng)前頁面,并返回上一頁面或多級(jí)頁面沟绪。開發(fā)者可通過 getCurrentPages()
獲取當(dāng)前的頁面棧刮便,決定需要返回幾層。這個(gè) API 需要填寫的參數(shù)只有 delta绽慈,表示要返回的頁面數(shù)恨旱。若 delta 的取值大于現(xiàn)有可返回頁面數(shù)時(shí),則返回到用戶進(jìn)入小程序的第一個(gè)頁面坝疼。當(dāng)不填寫 delta 的值時(shí)搜贤,就默認(rèn)其為 1(注意,默認(rèn)并非取 0)钝凶,即返回上一頁面仪芒。