uni-app框架用棧的形式管理頁面,當發生路由切換的時候,頁面棧的表現如下
路由初始化的時候(即uni-app打開的第一個頁面),新頁面入棧
打開新頁面,調用 uni.navigateTo 使用組件<navigator open-type="navigate"/>,類似於vue的route.push()。路由后可以帶參數,若跳轉地址為tabBar則不可帶參數
頁面重定向:當前頁面出棧,新頁面入棧調用 uni.redirectTo,使用組件<navigator open-type="redirectTo"/>,類似於vue的route.replace(),(路由后可以帶參數,若跳轉地址為tabBar則不可帶參數)
頁面返回:頁面不斷出棧,知道目標返回頁,調用 uni.navigateBack,使用組件<navigator open-type="navigateBack"/>,即左上角返回按鈕,安卓的物理back按鍵。(安卓現在也沒有物理back了叭),覺得類似於history.back(),路由后可以帶參數,若跳轉地址為tabBar則不可帶參數
tab切換:頁面全部出棧,只留下新的tab頁面,調用 uni.switchTab,使用組件<navigator open-type=“switchTab”/>,用戶切換Tab。清空之前的路由棧,以當前tab地址為第一條開始新的路由棧。路由后不可帶參數
重加載:頁面全部出棧,只留下新的頁面,調用 uni.reLaunch,使用組件 <navigator open-type=“switchTab”/>,用於跳轉到新的頁面。路由后可以帶參數,若跳轉地址為tabBar則不可帶參數
棧:先入后出,后入先出