打開(kāi)小程序后为狸,到三級(jí)頁(yè)面后點(diǎn)擊左上角的返回按鈕埃撵,能夠直接返回到首頁(yè)
正常 A -> B -> C 都是通過(guò) wx.navigateTo 跳轉(zhuǎn)的含滴,所以 wx.navigateBack 只能返回上一界面,如果要返回到A 界面就會(huì)出現(xiàn) C -> B -> A 的效果胶果。
如果想實(shí)現(xiàn) A -> B -> C 當(dāng) C 點(diǎn)擊返回時(shí)匾嘱, 實(shí)現(xiàn)直接 C -> A 這種效果, 就只能A -> B 通過(guò) wx.navigateTo 跳轉(zhuǎn) 早抠,
B -> C 通過(guò) wx.redirectTo 跳轉(zhuǎn)霎烙,跳轉(zhuǎn)觸發(fā)后 B 頁(yè)面就會(huì)被銷(xiāo)毀, C 頁(yè)面再返回 wx.navigateBack 就會(huì)直接到 A 了蕊连。
例如:
第一個(gè)頁(yè)面采用navigateTo悬垃,
wx.navigateTo({
url: '/pages/logs/logs',
})
在第二個(gè)頁(yè)面中使用redirectTo。
wx.redirectTo({
url: '/pages/test/test',
})
在第三個(gè)頁(yè)面點(diǎn)擊回退時(shí)甘苍,會(huì)直接回到第一個(gè)頁(yè)面尝蠕。(wx.redirectTo()跳轉(zhuǎn)到新頁(yè)面之后,會(huì)自動(dòng)銷(xiāo)毀上一個(gè)頁(yè)面载庭,在新頁(yè)面點(diǎn)擊返回按鈕時(shí)看彼,會(huì)直接回到上上一個(gè)頁(yè)面)
這是相當(dāng)于在這個(gè)回退過(guò)程中直接銷(xiāo)毀第二個(gè)頁(yè)面
小程序5種跳轉(zhuǎn)頁(yè)面方式的區(qū)別:
//只能跳轉(zhuǎn)到tabBar配置頁(yè)面
wx.switchTab({
url: '/pages/index/index',
});
//返回上一級(jí)頁(yè)面(delta:返回的頁(yè)面數(shù)廊佩,如果 delta 大于現(xiàn)有頁(yè)面數(shù),則返回到首頁(yè)闲昭,默認(rèn)值為1)
wx.navigateBack({
delta: 2 //默認(rèn)值是1
})
//關(guān)閉當(dāng)前頁(yè)面罐寨,跳轉(zhuǎn)到應(yīng)用內(nèi)的某個(gè)頁(yè)面
wx.redirectTo({
url: '/pages/index/index',
});
//保留當(dāng)前頁(yè)面,跳轉(zhuǎn)到應(yīng)用內(nèi)的某個(gè)頁(yè)面
wx.navigateTo({
url: '/pages/index/index',
});
// 關(guān)閉所有頁(yè)面序矩,打開(kāi)到應(yīng)用內(nèi)的某個(gè)頁(yè)面
wx.reLaunch({
url: '/pages/index/index',
})