微信小程序如何页面间传值?

224 阅读1分钟

1. 通过缓存传值,举例:把参数id从a页面传到b页面

// a.js
bindTapButton(){
  // 设置缓存
  wx.setStorage({
    key:'id',
    value:'1'
  })
  
  // 跳转到b页面
  wx.navigateTo({
    url:'/pages/b/b'
  })
}

//***********************************************
// b.js
data:{
  id:''
},

onShow(){
  let that = this;
  wx.getStorage({
    key:'id',
    success:function(res){
      that.setData({
      	id:res.data
      })
    }	
  })
},

onHide(){
  // 清除缓存
  wx.removeStorage({
    key:'id'
  })
}

2. navigator标签传值,只适合传简单的值

// a.wxml
<navigator url="/pages/b/b?id=1"></navigator>
// b.js
onLoad(options){
  this.setData({
    id:options.id
  })
}

3. wx.navigator传值

// a.js
bindTapButtton(){
    wx.navigator({
        url:'/pages/b/b?id='+1+'&title='+'标题'
    })
}

// b.js
onLoad(options){
  this.setData({
    id:options.id,
    title:options.title
  })
}

如何选择?

复杂的数据,比如对象、数组用缓存传值