小程式的四種跳轉方式和怎麼傳值的
阿新 • • 發佈:2020-09-21
目前小程式的幾個頁面跳轉方式的主要區別
就兩點:
- 1.是否可以返回上一個頁面
- 2.目標頁面是否是tabBar
兩個通用屬性
- 1.限制:目前頁面路徑最多隻能十層。
-2.分類:wx.navigateTo
和wx.redirectTo
不允許跳轉到 tabbar 頁面,只能用wx.switchTab
跳轉到 tabbar 頁面
下面是對幾個跳轉方式的整理說明
1.wx.navigateTo({})
保留當前頁面,跳轉到應用內的某個頁面,使用
wx.navigateBack
可以返回;
關於Url引數:
- 不能跳轉到tabBar頁面
- 帶參格式:【路徑】?【引數鍵1】=【引數值】& 【引數鍵2】=【引數值】
傳遞的引數在接收頁面onLoad()函式中得到值:option.id就可以得到了
onLoad: function (option) {
console.log(option)//可以列印一下option看檢視引數
this.setData({
id:option.id,
});
1.1.wx.navigateBack(object)
關閉當前頁面,返回上一頁面或多級頁面。
可通過 getCurrentPages()) 獲取當前的頁面棧,決定需要返回幾層。
關於引數:
delta–>型別:Number,
預設值:1 ,
說明:返回的頁面數,如果 delta 大於現有頁面數,則返回到首頁。
注意:呼叫 navigateTo 跳轉時,呼叫該方法的頁面會被加入堆疊,而 redirectTo 方法則不會。見下方示例程式碼
// 此處是A頁面
wx.navigateTo({
url: 'B?id=1'
})
// 此處是B頁面
wx.navigateTo({
url: 'C?id=1'
})
// 在C頁面內 navigateBack,將返回A頁面
wx.navigateBack({
delta: 2
})
2.wx.redirectTo(object)
關閉
(之前的頁面是回不去的)當前頁面,跳轉到非tabBar的某個頁面
關於Url引數:
- 不能跳轉到tabBar頁面
- 【路徑】?【引數鍵1】=【引數值】& 【引數鍵2】=【引數值】
3.wx.reLaunch(object)
關閉
(之前的頁面是回不去的)所有頁面,開啟到應用內的某個頁面。
關於Url引數:
- 【路徑】?【引數鍵1】=【引數值】& 【引數鍵2】=【引數值】
- 【如果是跳轉到tabBar頁面,則不能帶引數】
4.wx.switchTab(object)
跳轉到tabBar的某個頁面,並關閉
其他所有非 tabBar 頁面
關於引數:
- 目標頁面必須是在:app.json 的 tabBar 中定義的頁面
- 不能帶引數
wx.switchTab({
url: '/pages/home/home'
});
5.元件
直接寫在佈局裡面的跳轉方式
引數說明:
- url:和上面幾種方式的規則一樣,當前小程式內的跳轉連結
- open-type(跳轉方式):有效值如下表
引數 | 說明 |
---|---|
navigate | 對應 wx.navigateTo 或 wx.navigateToMiniProgram 的功能 |
redirect | 對應 wx.redirectTo 的功能 |
switchTab | 對應 wx.switchTab 的功能 |
reLaunch | 對應 wx.reLaunch 的功能 |
navigateBack | 對應 wx.navigateBack 的功能 |
eg:
<navigator url="/pages/detail/detail">點選跳轉</navigator>