在小程序中所有页面的路由全部由框架进行管理。
注:路由(routing)是指分组从源到目的地时,决定端到端路径的网络范围的进程。
框架以栈的形式维护了当前的所有页面。 当发生路由切换的时候,页面栈的表现如下:
注:堆是先进先出,栈是先进后出
getCurrentPages() 函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。
注意:
保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面。使用 wx.navigateBack 可以返回到原页面
参数
)
例如
完整形式
wx.navigateTo({
url: '/pages/index/index',
success:function(){
//接口调用成功的回调函数
},
fail:function(){
//接口调用失败的回调函数
},
complete:function(){
//接口调用结束的回调函数(调用成功、失败都会执行)
}
})
使用中我们通常简写为
wx.navigateTo({
url: '/pages/index/index',
})
Page({
data: {
value:1
},
//跳转
skipClick() {
wx.navigateTo({
url: '/pages/index1/index1?value=' + this.data.value
})
},
})
接收端index1.js
onLoad: function (options) {
console.log(options.value)
},
Page({
data: {
value1: 1,
value2: 2,
value3: 3
},
//跳转
skipClick() {
var array = new Array()
array = [this.data.value1, this.data.value2, this.data.value3]
wx.navigateTo({
url: '/pages/index1/index1?array=' + JSON.stringify(array),
})
},
})
接收端index1.js
onLoad: function (options) {
var array = new Array()
array = JSON.parse(options.array);
console.log(array[0])
console.log(array[1])
console.log(array[2])
},
注:多值传值时一定要传加上JSON.parse()
传值端JSON.stringify(array),
接收端JSON.parse(options.array);
否则传过的将字符串的形式接收,无法正常解析
跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
参数
例如
wx.switchTab({
url: '/pages/index/index'
})
传值同navigateTo一样
关闭所有页面,打开到应用内的某个页面,可以跳转到tabbar的页面
参数
例如:
wx.reLaunch({
url: '/pages/index/index'
})
传值同navigateTo一样
关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面。
参数
例如:
wx.redirectTo({
url: '/pages/index/index'
})
传值同navigateTo一样
关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages() 获取当前的页面栈,决定需要返回几层。
参数
例如
注:调用 navigateTo 跳转时,调用该方法的页面会被加入堆栈,而redirectTo 方法则不会。所以只要navigateTo的跳转才可以使用wx.navigateBack方法
wx.navigateBack({
delta: 1
})
参数:delta为返回的层数,如果为1,则返回上一层,如果返回层数大于进栈的层数,则按照最大层数算
注: