1. 程式人生 > 實用技巧 >小程式的四種跳轉方式和怎麼傳值的

小程式的四種跳轉方式和怎麼傳值的

目前小程式的幾個頁面跳轉方式的主要區別就兩點:

  • 1.是否可以返回上一個頁面
  • 2.目標頁面是否是tabBar

兩個通用屬性

  • 1.限制:目前頁面路徑最多隻能十層。
    -2.分類:wx.navigateTowx.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>