1.wx.switchTab
作用:跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面,不能带参数
2.wx.reLaunch
作用:关闭所有页面,打开到应用的某个页面,路径后可以带参数。参数与路径之间使用?分隔,参数键与参数值用=相连,不同参数用&分隔
3.wx.redirectTo
作用:关闭当前页面,跳转到应用的某个页面,但是不能跳转到Tabbar页面,可以带参数
4.wx.navigateTo
作用:保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面,可以传参和传事件进行事件通信
5.wx.navigateBack
作用:关闭当前页面,返回上一页面或多级页面.
这里有个坑,这个要搭配wx.navigateTo使用,仔细想想,其他的跳转都关闭了其他的页面哪里来的返回页面。否则会出现如下错误:
6.EventChannel
作用:页面间事件通信通道
EventChannel.on(string eventName, EventCallback fn)
触发一个事件
EventChannel.on(string eventName, EventCallback fn)
持续监听一个事件
EventChannel.once(string eventName, EventCallback fn)
监听一个事件一次,触发后失效
EventChannel.off(string eventName, EventCallback fn)
取消监听一个事件。给出第二个参数时,只取消给出的监听函数,否则取消所有监听函数
eg:传值页面:
//自定义事件
navigate(){
wx.navigateTo({
url: '../logs/logs?id=1',
success: function(res) {
// 通过eventChannel向被打开页面传送数据
res.eventChannel.emit('acceptDataFromOpenerPage', { data: 'test' })
}
})
},
接收页面:
onLoad(option) {
console.log(option) //获取上次页面url传入的参
const eventChannel = this.getOpenerEventChannel()
// 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据
eventChannel.on('acceptDataFromOpenerPage', function(data) {
console.log(data)
})
}
拿到结果,测试成功