小程序页面跳转的方式有以下几种:
一、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,则无效
相关推荐:小程序开发教程
以上就是小程序页面跳转有哪几种方式的详细内容。