微信小程序頁面跳轉 的幾種方式


最近在做微信小程序,碰到頁面跳轉的問題,總結一下頁面之間跳轉的方式

一、wx.navigateTo(OBJECT)


   這是最普遍的一種跳轉方式,其官方解釋為:“保留當前頁面,跳轉到應用內的某個頁面”

類似於html中的 window.location.href=" "
eg:

wx.navigateTo({ url: 'test?id=1' })
實際效果如下:

小程序中左上角有一個返回箭頭,可返回上一個頁面

也可以通過方法  wx.navigateBack 返回原頁面

二、wx.redirectTo(OBJECT)

關閉當前頁面,跳轉到應用內的某個頁面。
類似於html中的 window.open('你所要跳轉的頁面');

eg:
wx.redirectTo({ url: 'test?id=1' })
效果如下:

左上角沒有返回箭頭,不能返回上一個頁面

 

三、wx.switchTab(OBJECT)

 跳轉到 tabBar 頁面,並關閉其他所有非 tabBar 頁面
eg:
{ "tabBar": { "list": [{ "pagePath": "index", "text": "首頁" },{ "pagePath": "other", "text": "其他" }] } }
wx.switchTab({ url: '/index' })

wx.navigateTo 和 wx.redirectTo 不允許跳轉到 tabbar 頁面,只能用 wx.switchTab 跳轉到 tabbar 頁面

四、wx.reLaunch(OBJECT)

關閉所有頁面,打開到應用內的某個頁面。

跟wx.redirectTo 一樣左上角不會出現返回箭頭,但兩者卻不完全相同

這里要提到小程序中的  getCurrentPages() 方法

在wx.navigateTo中,每跳轉一個新的頁面,其原始頁面就會被加入堆棧,通過調用wx.navigateBack(OBJECT)可通過獲取堆棧中保存的頁面 返回上一級或多級頁面;

wx.redirectTo,方法則不會被加入堆棧,但仍可通過wx.navigateBack(OBJECT)方法返回之前堆棧中的頁面 

wx.reLaunch 方法則會清空當前的堆棧。

 

eg:

// 此處是A頁面 wx.navigateTo({ url: 'B?id=1' }) // 此處是B頁面 wx.navigateTo({ url: 'C?id=1' }) // 在C頁面內 navigateBack,將返回b頁面 wx.navigateBack({ delta: 1 })
// 此處是B頁面
wx.redirectTo({
url: 'C?id=1'
})
// 在C頁面內 navigateBack,則會返回a頁面
wx.navigateBack({
delta: 1
})

// 此處是B頁面
wx.reLaunch({
 url: 'C?id=1'
})
// 在C頁面內 navigateBack,則無效


參考鏈接https://developers.weixin.qq.com/miniprogram/dev/api/ui-navigate.html

 




 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2024 CODEPRJ.COM