1 wx.redirectTo

  关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面

 

2 wx.navigateTo和wx.navigateBack

2.1 说明

  保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面。使用 wx.navigateBack 可以返回到原页面。小程序中页面栈最多十层

 

2.2 事件

  wx.navigateBack返回到原页面可以出发onShow事件

 

3 wx.navigateTo参数传递

3.1正向传递参数

3.1.1 简介

  有页面A跳转B,并且从A传递参数到B

 

3.1.2 简单参数传递

1)传递参数

  A页面

wx.navigateTo({
  url: 'path/to/pageB?id=123'
});

 

 

2)接收参数

  B页面

Page({
  onLoad: function(options) {
    // 访问传递的参数
    console.log(options.id); // 输出: 123
    // 现在你可以使用这个id做你想做的事情
  }
})

 

3.1.3 复杂参数传递

  如数组,对象。要做个转换

 

1)传递参数

let data = { key1: 'value1', key2: 'value2' };
let s =
encodeURIComponent(JSON.stringify(data))
wx.navigateTo({ url: `path/to/pageB?data=` + s });

 

2)接收参数

Page({
  onLoad: function(options) {
    let data = JSON.parse(decodeURIComponent(options.data));
    console.log(data); // 输出: { key1: 'value1', key2: 'value2' }
  }
})

 

3.2 反向传递参数

3.1.1 简介

  有页面A跳转B,并且从B传递参数到A

 

3.1.2 参数传递

1)A页面,定义一个事件处理函数,接收B返回回来的数据

wx.navigateTo({
  url: 'xxx',
  events: {
  acceptCity(data){
    console.log('接受到了回传回来的数据',data)
    }
   }
})

 

2)B页面处理完业务后,通过事件通道( EventChannel )回传数据

let ec = this.getOpenerEventChannel()
ec.emit('acceptCity', 回传的数据)