路由跳轉
uni-app官方給的路由跳轉常用方法有以下三個;
1.uni.navigateTo
保留當前頁面,跳轉到應用內的某個頁面,使用uni.navigateBack可以返回到原頁面。,注意這裏只用於跳轉到子頁面哦,tabbar跳轉不要用這個,用switchTab。
用法代碼示例
uni.navigateTo({
url: '/pages/notice/notice'
})
2.uni.navigateBack
用於關閉當前頁面,返回上一頁面或多級頁面。可通過 getCurrentPages() 獲取當前的頁面棧,決定需要返回幾層。
用法代碼示例
uni.navigateTo({
url: '/pages/notice/notice'
});
3.uni.switchTab
用於跳轉到 tabBar 頁面,並關閉其他所有非 tabBar 頁面,只可以跳轉tabbar頁面,其他頁面不支持哦,這裏需要在page.json文件裏配置跳轉路徑。
用法代碼示例
//page.json文件配置
{
"pages": [ //pages數組中第一項表示應用啓動頁,參考:https://uniapp.dcloud.io/collocation/pages
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "首頁", ////頂部導航名稱
"navigationBarBackgroundColor":"rgb(0,154,251)",//頂部導航背景色
"navigationBarTextStyle":"white"//頂部導航字體顏色
}
},
]
}
//頁面用法
uni.switchTab({
url: '/pages/index/index'
});
頁面傳參
好了說一下頁面傳參常用方法吧;
第一種:
直接在跳轉頁面的URL路徑後面拼接,如果是數組或者json格式記得轉成字符串格式哦。然後再目的頁面onload裏面接受即可,我個人習慣用onshow()接收
代碼示例:
//現頁面
uni.navigateTo({
url:'./nav?index='+navData
})
//目的頁面接收
//這裏onload如果無效,用onshow()也可以
onLoad(options) {
var data = JSON.parse(options.index); // 字符串轉對象
console.log(data)
}
第二種:
直接在main.js註冊全集常量或者設置本地存儲也比較方便
代碼示例
//在頁面設置緩存
let data = {key:'name',value:'hello'}
uni.setStorage({
key:'setName',
data:data
})
//在目的頁面讀取並銷燬
uni.getStorage({
key: 'setName',
success: (res) => {
console.log(res.data) // ==>{key:'name',value:'hello'}
uni.removeStorage({
key:'setName'
})
},
})
好啦,還有很多方法都需要我們自己慢慢去摸索,希望這些可以幫到你。