在 UniApp 中,uni.reLaunch
、uni.navigateTo
和 uni.switchTab
三個方法都是用來進行頁面跳轉的,它們之間的區別如下:
uni.reLaunch
: 關閉當前所有頁面,跳轉到應用內的某個頁面。該方法會關閉當前所有頁面,並且將跳轉的頁面設置爲應用的首頁,可以使用url
參數來指定要跳轉的頁面路徑。使用場景通常是用在用戶註銷或者切換賬戶後重新打開應用時跳轉到應用首頁。uni.navigateTo
: 打開新頁面,關閉當前頁面(可返回)。該方法會打開一個新的頁面,同時導航欄會顯示一個返回按鈕,用戶可以通過返回按鈕返回到上一個頁面。可以使用url
參數來指定要跳轉的頁面路徑,使用animationType
和animationDuration
參數來設置打開和關閉頁面的動畫效果。此方法適用於普通的頁面跳轉。uni.switchTab
: 跳轉到 tabBar 頁面,並關閉其他所有非 tabBar 頁面。該方法用於跳轉到應用的 tabBar 頁面。當用戶點擊 tabBar 的某一項時,如果該頁面已經處於打開狀態,則不會重新創建頁面而是直接顯示。使用url
參數來指定要跳轉的 tabBar 頁面路徑。此方法適用於 tabBar 頁面之間的切換。
需要注意的是,uni.reLaunch
、uni.navigateTo
和 uni.switchTab
方法都是異步操作,需要使用 Promise 或者回調函數進行異步處理。同時,在使用 uni.navigateTo
和 uni.switchTab
方法進行頁面跳轉時,需要注意頁面層級的限制,最多隻能打開五層頁面,超過五層時會拋出錯誤提示。