微信小程式 某個頁面直接返回首頁(微信小程式回退到首頁)
開啟小程式後,到三級頁面後點擊左上角的返回按鈕,能夠直接返回到首頁
正常 A -> B -> C 都是通過 wx.navigateTo 跳轉的,所以 wx.navigateBack 只能返回上一介面,如果要返回到A 介面就會出現 C -> B -> A 的效果。
如果想實現 A -> B -> C 當 C 點選返回時, 實現直接 C -> A 這種效果, 就只能A -> B 通過 wx.navigateTo 跳轉 ,
B -> C 通過 wx.redirectTo 跳轉,跳轉觸發後 B 頁面就會被銷燬, C 頁面再返回 wx.navigateBack 就會直接到 A 了。
例如:
第一個頁面採用navigateTo,
wx.navigateTo({
url: '/pages/logs/logs',
})
在第二個頁面中使用redirectTo。
wx.redirectTo({
url: '/pages/test/test',
})
在第三個頁面點選回退時,會直接回到第一個頁面。(wx.redirectTo()跳轉到新頁面之後,會自動銷燬上一個頁面,在新頁面點選返回按鈕時,會直接回到上上一個頁面)
這是相當於在這個回退過程中直接銷燬第二個頁面
小程式5種跳轉頁面方式的區別:
-
//只能跳轉到tabBar配置頁面
-
wx.switchTab({
-
url: '/pages/index/index',
-
});
-
//返回上一級頁面(delta:返回的頁面數,如果 delta 大於現有頁面數,則返回到首頁,預設值為1)
-
wx.navigateBack({
-
delta: 2 //預設值是1
-
})
-
//關閉當前頁面,跳轉到應用內的某個頁面
-
wx.redirectTo({
-
url: '/pages/index/index',
-
});
-
//保留當前頁面,跳轉到應用內的某個頁面
-
wx.navigateTo({
-
url: '/pages/index/index',
-
});
-
// 關閉所有頁面,開啟到應用內的某個頁面
-
wx.reLaunch({
-
url: '/pages/index/index',
-
})